2016-04-12 4 views
2

Ich bin ok bei der Konfiguration/Änderung von PHP, aber nicht kompetent genug, um es von Grund auf neu zu schreiben - fragte mich, ob mir jemand damit bitte helfen kann?Scrape Daten-Ansicht Wert von der Website mit Simple HTML DOM

Grundsätzlich möchte ich eine kleine Menge von Daten von der Website kratzen, die in dem Format:

<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize"> 

und ich wünschte nur, die XYZ zu extrahieren Bit

$html->load($result["body"]); 

    $rows = $html->find("div.PDPVariantOption"); 
    foreach ($rows as $row) 
    { 
     echo "\t" . $row . "\n"; 
    } 

Das ist das ist Code, den ich verwende (in Verbindung mit http://barebonescms.com/documentation/ultimate_web_scraper_toolkit/), aber das extrahiert alles, was innerhalb des div-Tags ist - Ich habe verschiedene Optionen mit getAttribute und ähnlichem ausprobiert, um den Wert "data-value" zu bekommen (reines Rätselraten von mir befürchte ich !) aber kein Glück - kann jemand helfen?

Vielen Dank im Voraus

Joey

Antwort

-1

OK Dies ist mein kompletter Code, der funktioniert:

$dom = new DOMDocument(); 
$html = '<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize"> 
<div class="PDPVariantOption" data-value="BHB" data-variant="ClothingSize"> 
<div class="differentName"> 
<div class="PDPVariantOption" data-value="567" data-variant="ClothingSize"> 
<div class="PDPVariantOption" data-value="123" data-variant="ClothingSize"> 
<div class="PDPVariantOption" data-value="rty" data-variant="ClothingSize">'; 

$dom->loadHTML($html); 

$finder = new DomXPath($dom); 
$result = $finder->query("//*[contains(@class, 'PDPVariantOption')]"); 

for ($i; $i < $result->length; $i++) { 
    $row = $result->item($i)->getAttribute('data-value'); 
    echo $row . "\n"; 
} 
+0

Vielen Dank für Ihre Antwort - Tut mir wirklich leid, aber ich konnte das nicht bekommen Arbeit - mein Code ist jetzt: $ html-> laden ($ result ["body"]); $ rows = $ html-> find ('div [datenwert]') -> {'datenwert'}; foreach ($ Zeilen als $ Zeile) { Echo "\ t". $ Zeile. "\ n"; } Aber es wird nichts ausgeben? Vielen Dank im Voraus – Joey

+0

Ok Überprüfen Sie meine bearbeitete Antwort. Dies ist mein Demo-Skript, das mit getAttribute funktioniert, was einfacher ist. –

+1

Vielen Dank Ben, ich schätze es wirklich - ich habe es funktioniert - und tut mir leid, so ein Schmerz zu sein, aber gibt es trotzdem, dies auf Divs mit der Klasse PDPVariantOption zu beschränken - wie es andere divs auf der Seite gibt Dies liefert leere Zeilen für (vermutlich, da sie divs ohne Datenwert sind) – Joey