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

基于bs4的三个谷歌搜索爬取脚本两例失效,求原因及优化方案

失效脚本问题分析

前两个脚本无输出的核心原因一致:

  • 未携带User-Agent请求头:谷歌的反爬系统会拦截无浏览器标识的请求,返回的页面并非正常搜索结果页,而是包含反爬验证或无有效内容的页面,导致soup.find_all('h3')无法匹配到任何结果,自然没有输出。
  • 次要细节:第一脚本直接拼接URL的方式,若搜索词包含特殊字符(如空格、&等)会导致URL格式错误,但本次搜索词"Python"无特殊字符,所以不是失效原因;第二脚本用quote_plus编码搜索词的操作是正确的,但同样因缺少User-Agent导致失败。

对比第三脚本,它通过headers参数添加了模拟Firefox浏览器的User-Agent,谷歌识别为正常浏览器请求,返回了包含搜索结果的页面,因此能成功获取内容。

更优的谷歌搜索结果爬取方法
  • 优先使用谷歌官方Custom Search API:这是合规且稳定的方案,直接通过API调用获取结构化的搜索数据,无需处理复杂的反爬逻辑,也不用担心被封禁。
  • 优化网页爬取的请求配置:如果坚持爬取网页,需完善请求头(除User-Agent外,可添加Accept-Language、Referer等)模拟真实浏览器;同时控制请求频率,添加随机延迟,避免短时间内大量请求触发反爬机制。
  • 使用浏览器自动化工具:比如Selenium或Playwright,完全模拟用户的浏览器操作,能绕过大部分基础反爬,但资源占用较高,且需应对可能出现的验证码验证。
  • 搭配代理池分散请求来源:若需大规模爬取,使用代理池切换IP,避免单一IP被限制,但要确保代理IP的可用性和合法性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:15:40