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

使用BeautifulSoup爬取Screwfix网站无数据,是反爬还是解析器问题?

爬取Screwfix网站数据失败的原因排查

我用BeautifulSoup爬取TopCashBack网站已有数年,但切换到Screwfix的商品链接(如https://www.screwfix.com/p/128hf)时无法获取任何数据,使用的代码如下:

s = requests.get("https://www.screwfix.com/p/128hf")
soup = BeautifulSoup(s.text,'lxml')

print(soup)

想咨询的具体问题:无法获取数据是因为Screwfix网站存在反爬机制,还是需要指定lxml之外的其他解析器?


排查结论:大概率是反爬机制导致,解析器问题可能性极低

  • 先检查请求状态码:打印s.status_code,如果返回403、401这类状态码,基本可以确定被反爬拦截。多数电商网站会识别无浏览器标识的请求,直接拒绝访问。
  • 优先尝试添加模拟浏览器的User-Agent请求头:
    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'
    }
    s = requests.get("https://www.screwfix.com/p/128hf", headers=headers)
    
  • 解析器层面,lxml是成熟稳定的HTML解析工具,只要请求返回正常的HTML内容,不会出现完全无法获取数据的情况。可以先打印s.text查看返回内容:如果是空白页、反爬提示(如验证码页面、访问受限通知),则明确是反爬问题;如果是正常HTML但解析失败,再考虑切换html.parser等其他解析器测试。
  • 若添加UA后仍无效,可能需要进一步处理Cookie、使用IP代理,或确认网站是否采用动态渲染(需借助Selenium等工具加载JS内容),但建议从最简单的UA头开始逐步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:39:57