2016-04-26 10 views
0

Ich möchte eine Webseite laden und einige Elemente daraus extrahieren. Ich benutze PHP. Dies ist mein Codefile_get_contents ändert HTML-Tag in PHP

<?php 
$html = file_get_contents('www.website.com'); 
$pokemon_doc = new DOMDocument(); 
libxml_use_internal_errors(TRUE); //disable libxml errors 
    if(!empty($html)){ //if any html is actually returned 
    echo $html; 
} 
?> 

Wenn ich Quellcode www.website.com und HTML vergleichen, die ich loded ich sehe, dass einige Tags geändert. zum Beispiel gibt es

<span class="str"> 

in www.website.com sorce Code, der

<h5 class="item-subtitle"> 

in meinem loded html zu

ändert. Was ist der Grund und wie kann ich es korrigieren?

+2

Ich bezweifle, dass sich die Dinge ändern. Was wahrscheinlich passiert, ist die reale Seite hat Javascript, das an der Seite fummelt, die nicht auf Ihrer Seite läuft. Oder die Seite, die erstellt wird, wenn Sie sie richtig verwenden, anstatt sie zu kratzen, basiert auf etwas Servercode und Aktion, die Ihr Schaber – RiggsFolly

Antwort

0

Einige Websites ändern das Markup mit JavaScript. Wenn Sie das Website-Markup mit file_get_contents laden, führen Sie sein JavaScript nicht aus, sondern rufen nur das HTML ab. Vergleichen Sie den abgerufenen HTML-Code mit "Seitenquelle anzeigen" in Ihrem Browser. Diese sollten gleich sein.

Hoffentlich können Sie Ihre Sachen von diesem HTML analysieren, wenn nicht, müssen Sie den Inhaber dieser Web site kontaktieren und an ihre API anschließen, wenn sie sogar eine liefern.

+0

nicht ausführt, aber abgerufenes HTML mit "Seitenquelle anzeigen" in Browser sind unterschiedlich. –

+0

Ich habe Ihr Problem nicht vergessen, war aber in den letzten Tagen nicht verfügbar. Sind Sie sicher, dass Sie sich die Seitenquelle ansehen und nicht etwas wie Chrome-Dev-Tools? Navigieren Sie zu 'view-source: http: // yourwebsite.com' und vergleichen Sie diese beiden Quellen. Dev-Tools zeigen das JS-manipulierte Markup, View-Source nicht. – slax0r

Verwandte Themen