为了账号安全,请及时绑定邮箱和手机立即绑定

从网站上仅抓取 3 个项目

从网站上仅抓取 3 个项目

慕哥6287543 2023-03-31 16:29:42
我正在尝试使用Jsoup.通过这种方式,它刮了我整个网站。我只想抓取3,我尝试了不同类型的 for 循环和不同的组合,但效果不是很好for (Element row : doc.select("div.productWrapper")) {        Book book = new Book();        book.setName(row.select("div.productWrapper").select("a").attr("title"));        empikBestsellers.add(book);   }编辑:这是最好的方法吗?for (int i = 0; i < 3; i++) {            Book book = new Book();            book.setName(doc.select("div.productWrapper").get(i).select("a").first().attr("title"));            empikBestsellers.add(book);        }
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

Elements继承自ArrayList,因此您可以直接访问各个元素。

然后,您可以使用常规for循环在一定数量的元素之后停止,或者您可以一次只获取一个元素而无需循环。


查看完整回答
反对 回复 2023-03-31
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

不要循环遍历整个集合,只需循环 3 次即可。就像是...


List<Element> elements = doc.select("div.productWrapper");

//Holds number of times to loop

int numLoops = 3;


//Check to make sure there's enough of the desired number of elements

if(elements.size() < numLoops) {

  numLoops = elements.size();

}


//Loop for desired number of times

for (int i = 0; i < numLoops; i++) {

  Element row = elements.get(i);

  Book book = new Book();

  book.setName(row.select("div.productWrapper").select("a").attr("title"));

  empikBestsellers.add(book);

}


查看完整回答
反对 回复 2023-03-31
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信