首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DOM XPATH从网页获取背景图像

使用DOM XPATH从网页获取背景图像
EN

Stack Overflow用户
提问于 2020-04-04 16:19:45
回答 1查看 227关注 0票数 0

我正在使用PHP /XPath阅读一个网页,我已经成功地获得了我需要的文本,但是现在我正在尝试获取主图像的src,但我无法得到它。而且,复杂的事情,来源是不同的检查员。

这是消息来源:

代码语言:javascript
复制
<div id="bg">
            <img src="https://example.com/image.jpg" alt=""/>
</div>

下面是巡查员的元素:

代码语言:javascript
复制
<div class="media-player" id="media-player-0" style="width: 320px; height: 320px; background: url(&quot;https://example.com/image.jpg&quot;) center center / cover no-repeat rgb(208, 208, 208);" currentmouseover="16">

我试过:

代码语言:javascript
复制
$img = $xpath->evaluate('substring-before(substring-after(//div[@id=\'bg\']/img, "\')")');

代码语言:javascript
复制
$img = $xpath->evaluate('substring-before(substring-after(//div[@class=\'media-player\']/@style, "background: url(\'"), "\')")');    

但两者都一无所获。

以下是我的完整代码:

代码语言:javascript
复制
$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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-04 16:55:53

不是我通常会建议的内容,但由于您所追求的特定内容是从javascript加载的,但是内容是在<script>标记中,那么对于正则表达式来说,它可能是一个很容易提取的内容。从你的评论..。

啊是的,它出现在:海报:'https://284fc2d5f6f33a52cd9f-ce476c3c56a27f320262daffab84f1af.ssl.cf3.rackcdn.com/artwork_5e74a44e1e004_CHAMPDL879D_5e74a44e4672b.jpg

因此,这段代码看起来是poster : '...',的值。

代码语言:javascript
复制
$html = file_get_contents($externalurl);

preg_match("/poster : '(.*)',/", $html, $matches);
echo $matches[1];

这可能很容易在html中发生变化,但它目前可能会起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61031069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档