2016-04-12 2 views
2

Я в порядке при настройке/изменении PHP, но недостаточно для того, чтобы писать его с нуля - было интересно, может ли кто-нибудь помочь мне с этим, пожалуйста?Скрестить данные для просмотра данных с веб-сайта с помощью простого HTML DOM

В основном я хочу, чтобы скоблить небольшое количество данных с веб-сайта, который находится в следующем формате:

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

, и я хочу, чтобы извлечь только в XYZ бит

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

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

Это код, который я использую (в сочетании с http://barebonescms.com/documentation/ultimate_web_scraper_toolkit/), но это извлекает все, что находится в теге div - я пробовал различные параметры, используя getAttribute и аналогично получить значение «значение данных» (чистая догадка от меня, я боюсь !), но не повезло - может ли кто-нибудь помочь?

Большое спасибо заранее

Joey

ответ

-1

ОК это мой полный код, который работает:

$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

Спасибо за ваш ответ - Мне очень жаль, но я не мог получить эту работа - мой код: $ html-> load ($ result ["body"]); $ rows = $ html-> find ('div [data-value]') -> {'data-value'}; foreach ($ rows as $ row) { echo "\ t". $ row. "\ П"; } Но ничего не выводит? Спасибо заранее – Joey

+0

Ok Проверьте мой отредактированный ответ. Это мой демо-скрипт, который работает для меня, используя getAttribute, который проще. –

+1

Спасибо, Бэн, я очень ценю это - у меня это работает - и жаль, что это такая боль, но все равно ограничивать это просто divs классом PDPVariantOption - так как на странице есть другие divs, которые это возвращает пустые строки (предположительно, поскольку они являются divs без значения данных) – Joey

Смежные вопросы