Php 我怎样才能在一个div中刮取跨距左侧的最低绝对位置

Php 我怎样才能在一个div中刮取跨距左侧的最低绝对位置,php,curl,web-scraping,Php,Curl,Web Scraping,作为一名实习生,我必须在一个网站上搜集产品清单的价格。但是div包含多个带价格的跨度,只有一个包含显示的实际价格。它们的绝对左侧位置随每次刷新而改变。所以当我做类似的事情时 $productPrice$packtPageXpath->query('//div[@class=“bloc_price”]');如果($productPrice->length>0){$productSheet['name']=$productPrice->item(0)->nodeValue; 这将返回数组中每次刷新时

作为一名实习生,我必须在一个网站上搜集产品清单的价格。但是div包含多个带价格的跨度,只有一个包含显示的实际价格。它们的绝对左侧位置随每次刷新而改变。所以当我做类似的事情时
$productPrice$packtPageXpath->query('//div[@class=“bloc_price”]');如果($productPrice->length>0){$productSheet['name']=$productPrice->item(0)->nodeValue;
这将返回数组中每次刷新时按不同顺序排列的所有价格的列表

下面是一个产品表的示例
明智的做法是从
//div[@id=“top\u produit”]//div[@class=“bloc\u price”]/div中适当的
div
元素中提取左位置,方法是获取
样式中的“left:”和“px;”之间的值,比较PHP中的所有值,并使用具有最低值的div

不太明智的做法是假设它们的真实位置永远不会大于等于100,或者假位置永远不会小于100,得出结论,因为
样式
属性在其他方面是相同的,所以一个属性必须比所有其他属性都短,然后编写xpath来查找该属性

//div[@id=“top_produit”]//div[@class=“bloc_price”]/div[(字符串长度(@style)=81)]/span[not(包含(@style,“文本装饰:行通过”)]

可能有用!

FYI it's scrape(和scraping,scraped,scraper)not scrape看起来他们故意试图通过提供多个不同的价格并随机定位来让你想在那里做的事情变得更难。因此,这可能意味着,你不应该一开始就试图窃取这些数据,显然他们不想让你这么做。