Я работаю над сценарием, который получает данные из элементов HTML dom.
Вот мой код:
<?PHP
$url = 'http://www.sportsdirect.com/nike-satire-mens-skate-shoes-242188?colcode=24218822';
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXpath($doc);
$Name = $xpath->query('//span[@id="ProductName"]')->item(0)->nodeValue;
echo $Name;
?>
Этот код просто берет текст внутри <span id="ProductName"></span>
, Я знаю, как получить данные из элементов с определенным классом или идентификатором.
Я не знаю, как я могу получить src="http://adres-to-image.com/img.png"
(чистый пример) из тега изображения или как я могу получить элементы, которые не имеют идентификатора или класса, но имеют такие атрибуты, как itemprop
, например <div itemprop="name"></div>
src
?itemprop
?Заранее спасибо!
Для ваших примеров:
$xpath->query('//img/@src)->item(0)->nodeValue
Это означает
Выберите все атрибуты src всех тегов img и получите значение первого
$xpath->query('//div/[@itemprop="name"])->item(0)->nodeValue
Это означает
Выберите все div с itemprop attr равно name и получите значение первого.
Вы просто ищете атрибуты:
$url = 'http://www.sportsdirect.com/nike-satire-mens-skate-shoes-242188?colcode=24218822';
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXpath($doc);
$Name = $xpath->query('//div[@class="productImageSash"]');
foreach($Name as $element){
$imgs = $element->getElementsByTagName('img');
foreach($imgs as $img){
$src = $img->getAttribute('src');
echo $src;
}
}
Выход:
/images/sash/productsash_mustgo.png
То же самое с itemprop
атрибут, ищите div, которые имеют этот атрибут:
$Name = $xpath->query('//div');
foreach($Name as $element){
$itemprop = $element->getAttribute('itemprop');
if($itemprop){
echo "found";
}
}