PHP DOMXpath没有提取任何东西

时间:2012-04-04 15:28:38

标签: php dom xpath web-scraping

我正在尝试编写一个脚本来抓取此网站中第一张图片的网址:http://www.slothradio.com/covers/?adv=&artist=pantera&album=vulgar+display+of+power

这是我的剧本:

$content = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($content);
$xpath = new DOMXpath($doc);

$elements = $xpath->query("*/div[@class='album0']/img");
echo '<pre>';print_r($elements);exit;

当我运行它时,它会输出

DOMNodeList Object
(
)

即使我将查询更改为$xpath->query("*/img"),我仍然一无所获。我做错了什么?

2 个答案:

答案 0 :(得分:0)

  

我做错了什么?

您正在使用print_r,但DOMNodeList不为该函数提供任何输出(因为它是内部类)。例如,您可以从输出项目数开始。最后,您需要遍历节点列表并自行处理每个节点。

printf("Found %d element(s).\n", $elements->length);

答案 1 :(得分:0)

$doc->loadHTMLFile($content);接收文件路径而不是HTML内容参见文档

http://php.net/manual/en/domdocument.loadhtmlfile.php

使用

$doc = new DOMDocument();
$doc->loadHTMLFile($url);

输出元素使用

var_dump(iterator_to_array($elements)); 
//Or
print_r(iterator_to_array($elements));

由于

:)