从itunes页面检索img src

时间:2014-11-18 07:45:49

标签: php domdocument

在网址

https://itunes.apple.com/us/app/wechat/id414478124?mt=8

以下面的方式显示html中的图像

<div class="artwork">
<img class="artwork" width="175" height="175" src="http://a3.mzstatic.com/us/r30/Purple1/v4/64/d2/e1/64d2e14d-9339-32f0-9382-77c158a90941/icon175x175.png" src-swap="http://a3.mzstatic.com/us/r30/Purple1/v4/64/d2/e1/64d2e14d-9339-32f0-9382-77c158a90941/icon175x175.png" src-load-auto-after-dom-load="" src-swap-high-dpi="http://a3.mzstatic.com/us/r30/Purple1/v4/64/d2/e1/64d2e14d-9339-32f0-9382-77c158a90941/icon350x350.png" alt="WeChat">
<span class="mask"></span>
</div>

现在你可以看到,两者都有相同的类名。

我使用下面这段代码从图像中提取src

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTMLFile('https://itunes.apple.com/us/app/wechat/id414478124?mt=8');
libxml_clear_errors();
$xp = new DOMXPath($dom);
$image_src = $xp->query("//img[@class='artwork']");
echo $image_src->item(0)->getAttribute('src'). "<br/>";

但它只返回我

https://s.mzstatic.com/htmlResources/1583/frameworks/images/p.png

当通过浏览器地址栏看到时,只给出黑页

1 个答案:

答案 0 :(得分:0)

这是因为静态HTML页面将该地址作为源。要么通过JavaScript评估程序运行,要么查看其他属性,例如src-swap

如果您想要获取JavaScript呈现的页面,例如你可能会使用PhantomJS,但在这种情况下,因为答案已经存在,但是使用不同的属性,不使用任何东西来评估JS会更快。