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

Spring Boot+Jsoup爬取问题:无法获取内部HTML元素遍历车辆行

解决Jsoup无法遍历目标车辆行的问题

看起来你已经能成功获取页面的外层HTML,但在选择器的使用上有点小问题,导致没拿到想要的车辆行元素。咱们一步步来修正:

1. 修正元素选择器

你的目标是#VehBody下的每一行车辆,这些行对应的是class为vehicle_row的div元素。所以正确的选择器应该是:

Elements vehicleRows = doc.select("#VehBody .vehicle_row");

这个选择器的意思是:选中所有id为VehBody的元素下,class包含vehicle_row的子元素——正好对应你要遍历的每一行车辆。

2. 调整遍历逻辑

把原来遍历VehBody容器的代码,改成遍历上面拿到的vehicleRows,同时注意判空避免空指针:

for(Element row : vehicleRows) {
    // 获取行内的a标签文本(车辆名称)
    Element vehicleLink = row.selectFirst("a");
    if(vehicleLink != null) {
        aStringBuilder.append(vehicleLink.text());
        addLineBreak();
    }
}

3. 优化请求配置(可选但推荐)

你当前使用的userAgent版本太老(Mozilla/17.0),部分网站可能会识别为非真实浏览器而拦截或返回不完整内容。建议换成更贴近现代浏览器的UA,比如:

Document doc = Jsoup.connect("https://www.i-90motorsports.com/default.asp?page=xPreOwnedInventory")
        .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
        .get();

4. 排查潜在问题

如果修改后还是拿不到元素,那可能是页面内容是JavaScript动态渲染的——Jsoup只能抓取静态HTML,无法执行JS。这种情况下你需要结合Selenium、Playwright这类工具来模拟浏览器加载页面后再抓取内容。

另外,你代码里的doc.select("doc.info")应该是笔误吧?如果是要选中class为info的元素,应该写成.info哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:29:08