You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium爬取亚马逊商品:合并三个for循环为单循环,解决输出布尔值问题

问题根因

  • Java 中ArrayList的add()方法返回值为boolean类型,用于标识元素是否添加成功,你直接将add()操作放在打印语句中,自然输出的是true而非商品信息
  • 你在单次循环中对商品名称列表执行了两次add()操作,会导致名称列表出现重复数据
  • 三个商品属性的列表下标无需单独定义j、k变量,只要保证三个列表的元素是一一对应的,用同一个下标变量即可

修改方案

将你原有的for循环代码替换为如下内容即可:

for(int i=0; i<ar1.size() && i<ar2.size() && i<ar3.size(); i++) {
    // 先提取对应商品的三个属性
    String productName = ar1.get(i).getText();
    String productPrice = ar2.get(i).getText();
    String productLink = ar3.get(i).getAttribute("href");
    
    // 存入列表
    arr1.add(productName);
    arr2.add(productPrice);
    arr3.add(productLink);
    
    // 逐组打印当前商品的三个属性
    System.out.println("商品名称:" + productName);
    System.out.println("商品价格:" + productPrice);
    System.out.println("商品链接:" + productLink);
    // 可加分隔线区分不同商品
    System.out.println("------------------------");
}

额外注意

如果出现三个列表长度不一致导致部分商品未打印的情况,大概率是你使用的三个XPath定位规则覆盖的元素范围不一致,需要调整XPath保证每个商品对应的名称、价格、链接都能被正确定位,三个列表长度保持一致。

内容的提问来源于stack exchange,提问作者Pratik Pathare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:45:01