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

Python Requests爬取页面时BeautifulSoup查找元素返回None

问题根源

两个核心错误导致拿不到目标元素:

  • BeautifulSoup参数使用错误:BS4仅在匹配class属性时,因class是Python保留关键字需要使用class_传参,匹配id属性直接用id参数即可。原代码写的id_="most-recorded"是在查找带id_属性的标签,永远匹配不到目标span。
  • 请求被网站反爬机制拦截:requests默认的请求头User-Agent带有python-requests标识,网站识别到爬虫特征后不会返回正常页面内容,返回的响应体里本身就不存在目标元素。
修复代码

给请求添加普通浏览器的User-Agent模拟真实访问,同时修正find方法的参数即可:

from bs4 import BeautifulSoup
import requests

url = "https://www.gamerdvr.com/gamer/cookz/videos"
# 模拟Chrome浏览器的请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
# 修正id参数,去掉多余的下划线
element = soup.find('span', id="most-recorded")

print(element)
排查小提示

后续再遇到元素查找返回None的情况,先打印response.text核对返回内容是否和浏览器看到的页面一致,先排除反爬、内容动态加载的问题,再检查标签匹配的属性、参数是否书写正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:39:16