我正在从网站上抓取一些图像数据。没问题,直到这里。但是我的使用方式无法解决问题。
我的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个元素吗?
答案 0 :(得分:0)
我认为您需要这个。
$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;
}