我正在从一个网站上抓取一些图像数据。没问题。但是我的用法不是很好。
我的xpath查询就在下面。尝试使用position()选择前6个el。但它仍然返回所有元素。
$route = $path->query("//li/img[@class='lazy'][position() <= 6]");
foreach($route as $val){
var_dump(trim($val->getAttribute("data-original")));
}我不确定我在这里做错了什么?除了position()之外,还有没有其他方法来选择前6个元素
发布于 2019-08-26 09:28:27
我觉得你需要这个。
$route = $path->query("//li[1]/img[@class='lazy' and position() <= 6]");
foreach($route as $val){
var_dump(trim($val->getAttribute("data-original")));
}如果您不想指定<li>的索引,则需要使用计数器。
$route = $path->query("//li/img[@class='lazy' and position() <= 6]");
$ctr = 0;
foreach($route as $val){
if ($ctr <= 6){
var_dump(trim($val->getAttribute("data-original")));
}
$ctr = $ctr + 1;
}https://stackoverflow.com/questions/57650881
复制相似问题