如何检查HTML img属性是否有特定的文本并抓取它

How to check if HTML img attribute has certain text and scrape it

本文关键字:文本 抓取 是否 属性 何检查 检查 img HTML      更新时间:2023-09-26

基本上我有一个远程网页我需要获取它的内容像这样:

$src = file_get_contents('http://example.com/comp.html');
$text = new domDocument;
@$text->loadHTML($src); // I read on a separate post that the '@' supresses warnings
$text->preserveWhiteSpace = false;

comp.html页面如下所示

<html>
<div id = "test1">
<img src = "http://example.com/monkey"/>
</div
<div id = "test2">
<img src = "http://example.com/apples"/>
</div>
</html>

我想获得div id 'test2'的图像源,但忽略test1,因为它不会在条件中。然后,我想在test2 'http://example.com/apples'中抓取img src的字符串,并将其分开,只获取.com/之后的任何值,因此,如果网站是'http://example.com/oranges',它将获得值'橙子'。然后我想把这个值存储到一个变量中。

为了做到这一点,我在上面的代码后面写了这样的东西:
$text2 = $text->getElementsByTagName('img');
foreach ($text2 as $image) {
    $image->getAttribute('src');
 // My question is after this, how would I proceed?
}

按此进行…

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('div') as $dtag) {
    if ($dtag->getAttribute('id') === 'test2') {
        foreach($dtag->getElementsByTagName('img') as $itag)
        echo basename($itag->getAttribute('src')); //"prints" apples
    }
}