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>
里面的文字取出来。我知道如何从具有特定 class 或 id.
的元素中获取数据
我不知道如何从图像标签中获取 src="http://adres-to-image.com/img.png"
(纯示例),或者如何获取没有 id 或 class 但具有 [= 之类的属性的元素16=],例如 <div itemprop="name"></div>
- 如何获取图像
src
?
- 如何使用
itemprop
获取元素?
举个例子:
$xpath->query('//img/@src)->item(0)->nodeValue
这意味着
Select所有img标签的所有src属性并获取第一个的值
$xpath->query('//div/[@itemprop="name"])->item(0)->nodeValue
这意味着
Select 所有具有itemprop attr 等于name 的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";
}
}
我正在编写一个从 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>
里面的文字取出来。我知道如何从具有特定 class 或 id.
我不知道如何从图像标签中获取 src="http://adres-to-image.com/img.png"
(纯示例),或者如何获取没有 id 或 class 但具有 [= 之类的属性的元素16=],例如 <div itemprop="name"></div>
- 如何获取图像
src
? - 如何使用
itemprop
获取元素?
举个例子:
$xpath->query('//img/@src)->item(0)->nodeValue
这意味着
Select所有img标签的所有src属性并获取第一个的值
$xpath->query('//div/[@itemprop="name"])->item(0)->nodeValue
这意味着
Select 所有具有itemprop attr 等于name 的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";
}
}