You need to enable JavaScript to run this app. JavaScript fetch 抓取同站固定div表格的图片与文本实现
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript fetch 抓取同站固定div表格的图片与文本实现

现有思路的可行性

你提出的“固定DOM结构、仅替换URL复用解析规则”的采集思路是完全可行的,非常匹配同站点不同路径页面的取数场景——因为目标DOM的ID、层级完全固定,不需要额外写结构自适应逻辑,只要保证选择器和实际页面节点匹配,换URL就能直接拿到对应数据。只是你初步写的代码存在语法不规范、选择器逻辑错误的问题,无法直接运行。

目标URL的指定方法

你不需要为每个新页面单独写解析逻辑,只需要把URL抽成独立的可修改变量,配合HTML解析工具的页面加载能力就能完成切换:

  • 单独定义目标URL变量,后续要切换页面只需要修改这个变量里的路径值即可:String targetUrl = "https://your-same-site.com/defined-path"
  • 调用解析工具的请求方法加载页面DOM,建议补充常规浏览器请求头,避免被站点反爬规则拦截返回错误页面:Document doc = Jsoup.connect(targetUrl).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64)").get();
现有抓取代码的问题修正

文本抓取逻辑修正

你原来写的CSS选择器存在语法占位错误,带ID的DOM节点不能用“标签名 id”的格式书写,需要用#前缀精准匹配固定ID值,才能避免抓到页面无关文本:

// 替换为你实际的外层div、目标section的固定ID,示例ID为占位符
Elements targetContentBlock = doc.select("#outer-fixed-div-id > #target-fixed-section-id");
// 逐行输出文本,匹配新行输出的需求
for (Element block : targetContentBlock) {
    System.out.println(block.text());
}

图片抓取逻辑修正

你原来的图片抓取存在两个核心问题:一是全局搜索页面所有img标签,很容易抓到侧边栏、广告位等和目标表格无关的图片;二是URL截取的代码存在语法漏写、逻辑冗余的问题。
修正时需要把图片的搜索范围限定在之前定位的目标内容块内,不要做全局检索:

// 仅在目标内容块内部检索图片,从根源避免抓取无关图
Elements imgsInBlock = targetContentBlock.select("img");
String targetJpgUrl = null;
for (Element img : imgsInBlock) {
    String realImgUrl = img.absUrl("src");
    // 直接判断URL后缀是否为jpg,不做无意义的字符串全量转换
    if (realImgUrl.toLowerCase().contains(".jpg")) {
        targetJpgUrl = realImgUrl;
        // 取到第一个符合要求的图就跳出循环,减少无效遍历
        break;
    }
}
System.out.println(targetJpgUrl);

小提示:因为所有目标页面的DOM结构完全固定,只要初始阶段把选择器和实际页面节点的对应关系校准准确,后续切换不同路径的URL时,完全不需要修改解析逻辑,仅调整最开头的targetUrl变量即可自动完成对应页面的抓取;你只需要调整代码的执行顺序——先执行图片抓取逻辑输出图片地址,再循环输出文本,就能完全匹配“先抓图、再新行输出文本”的预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 09:27:02