1
我有一个功能来抓取图像src
属性在section
标签。但它给我图片这个指定的部分标记(选择class
)。
xPath选择器不能正常工作
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://www.akairan.com/health/bimari-behdasht/news201691911413397586.html');
$finder = new DomXPath($doc);
$imgNodes = $finder->query('//article[@class="contentpaneopen_text"]//img/@src');
$images = array();
foreach($imgNodes as $node) {
echo $node->nodeValue . "<br />";
}
结果是:
http://cdn64.akairan.com/files/images/20160919/20169/2016919114132436510a.jpg
http://cdn2.akairan.com/akairan/telegram.jpg
http://ser8.akairan.com/img/cdn/125/30/icmjthidoctor.ir.jpg
http://ser9.akairan.com/img/cdn/180/80/akairan__aka__m998__027343234141194102a.jpg
http://ser9.akairan.com/img/cdn/180/80/akairan__aka__m998__074496544283135102a.jpg
但它应该返回只是第一个链接而不是别人。
最后两个结果不内部<文章类= “contentpaneopen_text”>但是在结果中。这是我的问题。 @Yann – MehdiRahimi
它们实际上在''里面,因为标签没有正确关闭。尝试将DOMDocument转储到一个文件中,并在'loadHTMLFile'后面使用'$ doc-> saveHTMLFile('/ tmp/file.html');'来查看自己。 ' '在最后两个结果后放置不好。尽管如此,使用我答案中提供的Xpath只能匹配所需的值。 –