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

如何用Python+BeautifulSoup筛选BBC首页文章链接而非爬取全部链接

BBC首页新闻链接爬虫调整方案

核心过滤逻辑

BBC首页的新闻文章链接有明确的可识别特征,你可以通过路径规则+元素属性两层过滤,完全筛掉导航、广告、页脚等非新闻链接:

  • 所有正式发布的新闻文章路径均包含/news/、/sport/、/culture/、/future/、/travel/这类内容板块前缀
  • 首页新闻卡片内嵌的<a>标签普遍绑定了统一的前端样式类,2024年BBC首页前端框架未改动的情况下用属性过滤精度更高

修改后可直接运行的代码

import requests
from bs4 import BeautifulSoup

def linkScraper():
    html = requests.get("https://www.bbc.com/").text
    soup = BeautifulSoup(html, 'html.parser')
    # 定义新闻链接匹配的路径前缀规则
    news_path_prefixes = ("/news/", "/sport/", "/culture/", "/future/", "/travel/")
    for link in soup.find_all('a', href=True):
        href = link.get('href')
        # 过滤:路径符合新闻前缀规则,排除导航/广告/站外跳转链接
        if href.startswith(news_path_prefixes):
            # 补全相对路径为完整可访问链接
            full_url = f"https://www.bbc.com{href}" if href.startswith("/") else href
            print(full_url)

可选优化项

如果要进一步过滤掉非文章类的新闻列表页链接,可以再加一层路径长度判断:正常单篇新闻文章的路径除了板块前缀外,还会带数字ID或者标题slug,路径段数≥3,比如/news/world-asia-china-68972345,可以排除掉/news/这类板块首页链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:54:05