簡體   English   中英

DomDocument / DOMXPath-如何通過itemprop和img src獲取HTML Dom元素

[英]DomDocument/DOMXPath - How to get HTML Dom element by itemprop and img src

我正在研究從HTML DOM元素獲取數據的腳本。

這是我的代碼:

$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> 我知道如何從具有特定類或ID的元素中獲取數據。

我不知道如何從圖片標記中獲取src="http://adres-to-image.com/img.png" (純示例),或者如何獲取不具有id或class的元素具有類似於itemprop屬性,例如<div itemprop="name"></div>

  1. 如何獲取src圖片?
  2. 如何使用itemprop獲取元素?

舉個例子:

$xpath->query('//img/@src)->item(0)->nodeValue

這意味着

選擇所有img標簽的所有src屬性,並獲取第一個的值

$xpath->query('//div/[@itemprop="name"])->item(0)->nodeValue

這意味着

選擇所有具有itemprop attr等於名稱的div,並獲取第一個的值。

您只需要查找以下屬性:

$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";
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM