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

无法用BeautifulSoup爬取谷歌搜索结果,返回空列表求助

排查谷歌搜索结果爬取返回空列表的问题

嘿,我来帮你分析下为啥你的代码返回空列表~主要问题出在谷歌的反爬机制和请求头缺失上,具体原因和解决办法如下:

核心原因:谷歌的反爬检测

谷歌会识别非浏览器发出的请求,你的代码直接用requests.get(url)发送请求,没有携带任何浏览器标识的请求头,谷歌会判定这是机器人访问,返回的页面根本不是正常的搜索结果页面——自然找不到class='g'的容器元素了。

解决办法:添加请求头模拟浏览器访问

你需要给请求加上User-Agent等请求头,让谷歌认为这是浏览器发出的正常请求。具体修改步骤如下:

  1. 先获取你自己浏览器的User-Agent:打开浏览器的开发者工具(F12),在网络请求里随便找一个请求,查看它的Request Headers里的User-Agent字段,复制下来。
  2. 在请求时把这个头信息传入requests.get()方法。

修改后的代码如下:

from bs4 import BeautifulSoup
import requests

keyWord = input("Input Your KeyWord :")
url = f'https://www.google.com/search?q={keyWord}'

# 添加请求头,这里替换成你自己的User-Agent
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'
}

src = requests.get(url, headers=headers).text
soup = BeautifulSoup(src, 'lxml')
container = soup.findAll('div', class_='g')
print(container)

额外提醒

另外还要注意:谷歌的页面结构可能会随时调整,如果之后再出现类似问题,也可以检查class='g'这个选择器是否还适用——你可以用浏览器开发者工具查看当前搜索结果页面的元素结构,确认容器的类名或标签有没有变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:12:53