0
que je suis une version simplifiée du tutoriel de grattage par Nettuts ici, qui trouve essentiellement les divs avec class=preview
simple HTML DOM ne reçoit que 1 élément
Ceci est mon code. Le problème est que quand je compte $items
je reçois seulement 1, donc il obtient seulement le premier div avec class=preview
, pas tous.
$articles = array();
$html = new simple_html_dom();
$html->load_file('http://net.tutsplus.com/page/76/');
$items = $html->find('div[class=preview]');
echo "count: " . count($items);
alternatives de tiers proposées à [SimpleHtmlDom] (http://simplehtmldom.sourceforge.net/) qui utilisent effectivement [DOM] (http: // php.net/manual/fr/book.dom.php) au lieu de l'analyse des chaînes: [phpQuery] (http://code.google.com/p/phpquery/), [Zend_Dom] (http: //framework.zend .com/manual/fr/zend.dom.html), [QueryPath] (http://querypath.org/) et [FluentDom] (http://www.fluentdom.org). – Gordon
et si vous avez fait '$ items [] = $ html-> find ('div [class = preview]');' ou juste déclaré le tableau en premier. C'est soit ne pas gratter le DOM correctement ou ne pas le stocker correctement. peut-être essayer un 'var_dump ($ html-> find ('div [class = aperçu]'))' –
Vous pouvez comparer la syntaxe de sélection pour phpquery simplehtmldom et ganon [ici] (http://scraperblog.blogspot.com/2012/ 11/choose-php-html-parser.html). Je trouve que phpquery a la syntaxe la plus propre et est la meilleure en général. – pguardiario