我正在使用PHP /XPath阅读一个网页,我已经成功地获得了我需要的文本,但是现在我正在尝试获取主图像的src,但我无法得到它。而且,复杂的事情,来源是不同的检查员。
这是消息来源:
<div id="bg">
<img src="https://example.com/image.jpg" alt=""/>
</div>下面是巡查员的元素:
<div class="media-player" id="media-player-0" style="width: 320px; height: 320px; background: url("https://example.com/image.jpg") center center / cover no-repeat rgb(208, 208, 208);" currentmouseover="16">我试过:
$img = $xpath->evaluate('substring-before(substring-after(//div[@id=\'bg\']/img, "\')")');和
$img = $xpath->evaluate('substring-before(substring-after(//div[@class=\'media-player\']/@style, "background: url(\'"), "\')")'); 但两者都一无所获。
以下是我的完整代码:
$html = file_get_contents($externalurl);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$allChildNodesFromDiv = $xpath->query('//h1[@class="artist"]');
$releasetitle = $allChildNodesFromDiv->item(0)->textContent;
echo "</br>Title: " . $releasetitle;
$img = $xpath->evaluate('substring-before(substring-after(//div[@class=\'media-player\']/@style, "background: url(\'"), "\')")');
echo $image;
$img = $xpath->evaluate('substring-before(substring-after(//div[@id=\'bg\']/img, "\')")');
echo $image;发布于 2020-04-04 16:55:53
不是我通常会建议的内容,但由于您所追求的特定内容是从javascript加载的,但是内容是在<script>标记中,那么对于正则表达式来说,它可能是一个很容易提取的内容。从你的评论..。
因此,这段代码看起来是poster : '...',的值。
$html = file_get_contents($externalurl);
preg_match("/poster : '(.*)',/", $html, $matches);
echo $matches[1];这可能很容易在html中发生变化,但它目前可能会起作用。
https://stackoverflow.com/questions/61031069
复制相似问题