2009-07-17 7 views
1

Je voudrais récupérer le contenu d'une page et reformater à mon goût ...PHP-Retrieve le contenu de la page

Par exemple:

  • Aller à example.com
  • Obtenez le contenu dans les balises avec classe "x"
  • contenu passe à des variables spécifiques
  • crachez le contenu dans une jolie form..array, csv, xml ...

Pas trop dur, non? Je suis un noob PHP! :)

Répondre

2

Essayez d'utiliser PHP Simple HTML DOM Parser.

Vous pouvez faire des choses bien comme ceci:

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 

// Find all links with class=x 
foreach($html->find('a[class=x]') as $element) 
     echo $element->href . '<br>'; 
0

XSD pourrait faire l'affaire pour vous. Je considérerais également wget + CSS ...

1

Pour obtenir les données, il y a trois niveaux de difficulté:

file_get_contents($url); //easy 

Malheureusement beaucoup de sites ne sont pas très sensibles à la agent d'utilisateur approprié. Vous avez deux options, ici. L'un est un peu plus dur que l'autre. Intermédiaire est Zend HTTP Client

$client = Zend_Http_Client(); //make sure to include Zend_Http, etc. 
$client->setConfig($params); // params will include proper user agent 
$client->setUri($aUrl); 
$html = $client->request()->getBody(); 

option trois, que vous pourriez ne pas même envisager, sauf si vous voulez vraiment garder plus script que orienté objet, est d'explorer PHP de cURL functionality

Il y a quelques PHP- façons natives d'accéder aux données HTML via un objet DOM, mais mon préféré est le Simple HTML DOM Parser. C'est très similaire à la navigation DOM de style jQuery/CSS.

$domObject = new Simple_HTML_Dom($html); 
foreach ($domobject->find('div#theDataYouWant p') as $sentence) 
{ 
    echo "<h3>{$sentence}</h3>"; 
} 
Questions connexes