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

使用BeautifulSoup查找flex容器内span标签返回None该如何解决

问题根因

  • 目标站点有基础反爬机制,直接使用requests发起默认请求会被识别为爬虫,返回的并非正常渲染的商品列表页面,因此soup对象中不存在目标price类标签,查询自然返回None。
  • 可选优化点:Python内置的html.parser解析容错率较低,部分不规范的HTML结构可能解析不全,可替换为lxml解析器提升解析效果。

修复步骤

  1. 给请求添加符合浏览器特征的User-Agent请求头,伪装成正常浏览器访问
  2. 可以先打印返回的状态码和响应文本验证是否拿到了正常页面,确认内容正确后再做解析
  3. 可选:提前安装lxml库替换默认的html.parser解析器

修复后可运行代码

import requests
from bs4 import BeautifulSoup as bs

URL = "https://geizhals.de/?cat=gra16_512&xf=9816_03+05+16+-+RTX+3090"
# 添加请求头伪装浏览器
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}
r = requests.get(URL, headers=headers)
# 可先打印状态码确认请求是否成功
print(r.status_code)
# 用lxml解析,需要提前执行pip install lxml安装依赖
soup = bs(r.content, 'lxml')

s = soup.find('span', attrs={'class': 'price'})
print(s)

额外注意

如果添加UA后还是拿不到内容,可能站点还有其他反爬校验,比如需要携带Cookie、验证人机等,你可以清理测试环境的请求记录后多试几次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:15:03