使用PHP简单HTML DOM从“ data-srcset”属性中仅获取一个URL

问题描述 投票:0回答:1

我正在尝试从外部网站抓取图像URL,以用作我自己网站上图像元素中的src属性。

问题是,在外部网站上,图片网址嵌套在图片元素,在源元素中,然后在“ data-srcset”属性中以不同的大小进行迭代。示例:

<picture><source data-srcset="https://imageurl.com 640w, https://imageurl.com 720w, https://imageurl.com 860w"></picture>

我可以使用PHP Simple HTML DOM的find()定位特定元素,并将其存储在变量中。此变量称为$ imageselector。我可以通过为data-srcset创建变量来进一步定位实际属性:

$srcset = 'data-srcset';

我的最终输出如下所示:

<?php echo $imageselector->$srcset; ?>

但是,这尝试打印属性内的所有内容(当然),这对我来说不是很有用。

有人对如何获取,例如说属性中的第一个URL有任何想法吗?

((添加最大长度也不会带来多大好处,因为URL的长度可能随时改变)

php html web-scraping attributes simple-html-dom
1个回答
0
投票

您可以取$imageselector->$srcset,将其内容拆分为一个数组,然后根据需要过滤。

$longString = $imageselector->$srcset;
$pics = explode(",", $longString)

现在您有一个包含"https://imageurl.com 640w"之类的数组,因此现在您可以以[1]为例。

$toUse = explode(" ", $pics[1]);
$toUse = $toUse[0]; //to get the useful part of the item

或者,您也可以预过滤整个数组

function getLink($string) {
    return substr($string, 0, strpos($string, " "));
}
//Once you already have the exploded string
$pics = array_filter($pics, "getLink");
© www.soinside.com 2019 - 2024. All rights reserved.