You need to enable JavaScript to run this app. 如何使用Jsoup爬取BBC搜索结果页的图片、条目标题与描述
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Jsoup爬取BBC搜索结果页的图片、条目标题与描述

Jsoup 提取BBC搜索结果条目的实现方案

稳定定位规则

直接基于页面固定语义属性定位搜索结果容器,避免前端类名哈希变更导致爬取失效:

  • 所有搜索结果条目统一挂载在带 data-testid="search-result" 属性的 <article> 标签下
  • 条目标题:条目容器内 <h1> 标签下的 <a> 文本节点
  • 条目描述:条目容器内带 data-testid="card-description" 属性的段落文本节点
  • 条目图片:条目容器内 <img> 标签的src属性,通过Jsoup内置方法拼接为完整可访问地址

替换后可直接运行的代码

StringBuilder newsContent = new StringBuilder();
try {
    // 配置浏览器标识,避免被站点反爬拦截
    Document page = Jsoup.connect("https://www.bbc.co.uk/search?q=handsworth")
            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36")
            .get();
    String pageTotalTitle = page.title();
    newsContent.append(pageTotalTitle).append("\n\n");

    // 遍历所有搜索结果条目
    Elements resultItems = page.select("article[data-testid='search-result']");
    int index = 1;
    for (Element item : resultItems) {
        newsContent.append("第").append(index).append("条结果\n");
        // 提取标题
        Element titleNode = item.selectFirst("h1 a");
        String title = titleNode != null ? titleNode.text().trim() : "无匹配标题";
        newsContent.append("标题:").append(title).append("\n");
        // 提取描述
        Element descNode = item.selectFirst("p[data-testid='card-description']");
        String desc = descNode != null ? descNode.text().trim() : "无匹配描述";
        newsContent.append("描述:").append(desc).append("\n");
        // 提取图片
        Element imgNode = item.selectFirst("img");
        String imgSrc = imgNode != null ? imgNode.absUrl("src") : "无匹配配图";
        newsContent.append("图片地址:").append(imgSrc).append("\n\n");
        index++;
    }
} catch (IOException e) {
    newsContent.append("爬取报错:").append(e.getMessage()).append("\n");
}

实操注意点

  • 必须在请求中配置和主流浏览器一致的userAgent,否则默认Jsoup的请求特征会触发站点反爬,返回403状态码
  • 提取资源地址时优先使用absUrl()方法,自动处理相对路径的域名拼接,不需要手动写前缀逻辑
  • 定位元素优先选用页面上带固定语义的属性(如data-testid)做选择器,这类属性不会随前端样式更新变动,爬取稳定性远高于带随机哈希后缀的样式类名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 00:06:02