1 votes

PHP - Récupérer le contenu d'une page

J'aimerais récupérer le contenu d'une page et le reformater à ma guise...

Par exemple :

  • Aller à example.com
  • Obtenir le contenu des balises de la classe "x"
  • Transmettre le contenu à des variables spécifiques
  • Recracher le contenu sous une jolie forme... tableau, csv, xml...

Ce n'est pas trop difficile, n'est-ce pas ? Je suis un noob de PHP :)

2voto

ryeguy Points 24980

Essayez d'utiliser PHP Simple HTML DOM Parser .

Vous pouvez faire de belles choses comme ça :

// 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>';

1voto

Robert Elwell Points 4431

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

file_get_contents($url); //easy

Malheureusement, de nombreux sites ne sont pas très réceptifs à l'agent utilisateur approprié. Deux options s'offrent à vous. L'une est un peu plus difficile que l'autre. L'option intermédiaire est Client Zend HTTP

$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();

La troisième option, que vous ne devriez même pas envisager à moins que vous ne souhaitiez vraiment que votre système soit plus orienté vers le script que vers l'objet, est d'explorer la fonction Fonctionnalité cURL

Il existe quelques méthodes natives de PHP pour accéder aux données HTML via un objet DOM, mais ma préférée est la méthode Parseur HTML DOM simple . Elle est très similaire à la navigation dans le DOM à la manière de jQuery/CSS.

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

0voto

Kenny Points 11

XSD pourrait faire l'affaire pour vous. Je pense aussi à wget + CSS...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X