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

网页爬取:如何获取法甲赛事表中全部比赛报告链接?

高效获取FBref Ligue 1比赛报告链接的方法

1. 直接解析页面HTML提取完整链接

这是最可靠的方案——不用自己构造URL,直接从页面表格里提取现成的链接,完全避开随机字符串的困扰。以Python为例,用requests获取页面内容,BeautifulSoup解析DOM:

import requests
from bs4 import BeautifulSoup

url = "https://fbref.com/fr/comps/13/calendrier/Scores-et-tableaux-Ligue-1"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}

response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

# 定位赛事表格
match_table = soup.find("table", class_="stats_table")
report_links = []

# 遍历表格行,提取比赛报告链接
for row in match_table.find_all("tr"):
    # 匹配法语的"比赛报告"文本对应的a标签
    report_tag = row.find("a", string="Rapport du match")
    if report_tag:
        full_link = report_tag["href"]
        # 拼接相对链接为完整URL
        if full_link.startswith("/"):
            full_link = f"https://fbref.com{full_link}"
        report_links.append(full_link)

print(report_links)

2. 抓取页面内嵌的数据源或API接口

很多体育数据网站会在页面中嵌入JSON格式的原始数据,或提供未公开的API接口:

  • 打开浏览器开发者工具(F12),切换到「Network」标签后刷新页面
  • 筛选XHR/Fetch请求,查找包含赛事ID(比如13对应Ligue 1)或关键词「data」「api」的请求
  • 直接请求这些接口,返回的JSON数据里会包含完整的比赛报告链接,无需解析HTML

FBref的部分数据来自关联的API接口,返回的结构中每个比赛条目都会带报告链接字段,直接提取即可。

3. 使用封装好的体育数据工具库(需合规)

一些第三方Python库专门封装了FBref等网站的爬取逻辑(比如fbref_scraper),调用库的内置方法就能直接获取比赛报告链接,省去自己写解析代码的步骤。注意要遵守网站的robots.txt规则,避免过度请求导致IP被封禁。

关键注意事项

  • 必须设置合法的请求头(User-Agent),模拟浏览器请求,防止被网站拦截
  • 遵守网站robots.txt协议,FBref允许爬取赛事日历类页面,但需控制请求频率
  • 如果页面是滚动加载更多内容,需要用selenium或playwright模拟浏览器行为,等待页面加载完成后再提取链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:30:49