Python网页爬虫运行异常 无法定位故障原因求助
问题根因
你的代码有两个明确故障点:
- BeautifulSoup构造方法的第二个参数是解析器类型,你传入的
"head"不是合法解析器参数,会直接导致解析逻辑失效,常用合法解析器为Python内置的html.parser。 - 目标站点是电商比价站,默认会拦截
requests自带的爬虫标识请求头,你直接发起请求大概率拿到的是反爬拦截页、403响应,而非真实的商品列表页源码。
修复后可运行代码
import requests from bs4 import BeautifulSoup # 伪装成普通浏览器的请求头,绕过基础反爬 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" } req = requests.get("https://www.arukereso.hu/mobiltelefon-c3277/", headers=headers) # 先校验请求状态,非200直接抛错方便定位 req.raise_for_status() # 传入正确的html解析器 soup = BeautifulSoup(req.content, "html.parser") print(soup.prettify())
额外排查提示
如果运行后还是拿不到正确内容,先打印req.status_code查看响应状态:
- 返回403/429:说明被反爬识别,需要补充Cookie、调整请求频率
- 返回200但内容不对:检查是否需要处理页面动态渲染的内容,该站点部分模块是JS加载的,静态请求拿不到的话需要配合playwright之类的工具渲染页面
内容的提问来源于stack exchange,提问作者alizz
相关产品推荐
相关产品推荐

