2017-01-23 3 views
-1

Also ich versuche nur eine HTML-Seite mit PHP zu kratzen. Ich habe auf Google nachgesehen, wie es geht, und ich benutze die file_get_contents() Methode. Ich schrieb ein kleines Stück Code, aber ich bin schon einen Fehler bekommen, die ich nicht herausfinden kann:PHP scrape eine html Seite

$page = file_get_contents('http://php.net/supported-versions.php'); 
    $doc = new DOMDocument($page); 
    //print_r($page); 

foreach ($doc->getElementsByTagName('table') as $node) { 
    print_r($node); 
} 

Die erste, auf Kommentar print_r Anweisung, um die Seite nicht gedruckt, aber die foreach-Schleife soll jeden Tisch bekommt in $ node, aber es druckt nichts. Was mache ich falsch?

+2

Mein Rat wäre, Simple HTML Dom Parser zu verwenden; http://simplethmdom.sourceforge.net/ – Kaylined

+0

Warum versuchen Sie, PHP mit Javascript mischen –

+0

Ich schreibe ein WordPress-Plugin – brothman

Antwort

1

Sie laden Ihre DOMDocument falsch, müssen Sie entweder ->loadHTMLFile() oder etwas Ähnliches. Siehe die documentation here.

Hier ist, was Sie stattdessen tun müssen.

<?php 
    libxml_use_internal_errors(true); 
    $doc = new DOMDocument(); 
    $doc->loadHTMLFile("http://php.net/supported-versions.php"); 
    foreach($doc->getElementsByTagName('table') as $table){ 
     var_dump($table); 
    } 
?> 

Die Linie libxml_use_internal_errors(true); stellt sicher, dass es keine Fehler ausgelöst, wenn die HTML geladen wird. Als nav und section Tags werden nicht unterstützt wie "korrekt" html zum Beispiel.