Question

Existe-t-il une classe / bibliothèque PHP qui me permettrait d’interroger un document XHTML avec des sélecteurs CSS? J'ai besoin de gratter quelques pages pour des données très facilement accessibles si je pouvais utiliser les sélecteurs CSS (jQuery m'a gâté!). Des idées?

Était-ce utile?

La solution

Après Googling (les premiers résultats n’ont pas été très utiles), il semble qu’il existe une bibliothèque Zend Framework pour cela, avec quelques autres:

Autres conseils

XPath est un moyen assez standard d’accéder aux nœuds XML (et XHTML) et offre une précision bien supérieure à celle de CSS.

Un excellent composant est un composant de symfony 2, CssSelector \ Parser Introduction . Il convertit les sélecteurs CSS en expressions XPath. Jetez un oeil =)

code source

Pour les utilisateurs jQuery les plus intéressants peuvent être le portage de jQuery vers PHP , qui est < strong> phpQuery . Presque toutes les sections de la bibliothèque sont portées. En outre, il contient le plug-in WebBrowser , qui peut être utilisé pour Web Scraping le chemin / processus de l'ensemble du site (par exemple, l'accès aux données disponibles après la connexion). Il simule simplement un navigateur Web sur le serveur (événements et cookies également). Les dernières versions offrent un support expérimental pour les espaces de nom XML et le sélecteur "|" et CSS3 .

J'ai utilisé PHP Query Lite , c'est très simple et j'ai tout ce dont j'ai besoin.

Pour l'analyse de documents, j'utilise DOM . Cela peut assez facilement résoudre votre problème si vous connaissez le nom de la balise (dans cet exemple, "div"):

 $doc = new DOMDocument();
 $doc->loadHTML($html);

 $elements = $doc->getElementsByTagName("div");
 foreach ($elements as $e){
  if ($e->getAttribute("class")!="someclass") continue;

  //its a div.classname
 }

Vous n'êtes pas sûr que DOM vous permette d'obtenir tous les éléments d'un document à la fois ... vous devrez peut-être effectuer une traversée de l'arbre.

J'ai écrit le mien, basé sur le moteur de sélection Mootools CSS http://selectors.svn.exyks.org/ . il repose sur la capacité d'extension simplexml (donc, il est en lecture seule)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top