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

使用BeautifulSoup4的find_all方法爬取flashscore数据返回空列表的原因是什么

Python爬取flashscore.com返回空列表的原因分析

你运行代码得到空列表主要有以下几个核心原因:

  • 网站反爬拦截
    requests库发起请求时默认的请求头带有明显的爬虫特征,flashscore.com的反爬策略会直接拦截这类请求,返回的不是正常的赛事页面内容,自然找不到对应类名的div元素。你可以先执行print(res.text)查看返回的实际内容,大概率是拦截提示页、空白页或者验证页面。
  • 赛事数据为动态加载
    该网站的赛事列表数据不会直接写在初始静态HTML里,是页面加载完成后,由前端JavaScript发起异步请求拿到数据,再动态渲染到页面上的。你直接用requests.get拿到的只是还没执行JS渲染的初始HTML源码,本身就不存在你要查找的event__match相关节点。
  • 类名动态变更(概率较低)
    部分体育类网站会定期更新前端元素类名做反爬,你当前使用的类名如果和最新页面的元素类名不匹配,也会出现查找结果为空的情况,可以自行打开浏览器开发者工具核对对应元素的类名是否正确。

可选解决思路

  • 先补充完整的请求头参数,至少配置正常的User-Agent模拟浏览器发起请求,确认可以拿到正常的页面源码。
  • 若确认数据为动态加载,推荐两种解决方案:
    1. 打开浏览器开发者工具的网络面板,筛选异步请求找到官方的赛事数据接口,直接请求接口拿到结构化的JSON数据,效率更高。
    2. 使用Selenium、Playwright等模拟浏览器运行的工具,等待页面JS执行完成、元素渲染完毕后再提取对应内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:39:03