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

使用Python获取谷歌搜索右侧信息失败,寻求代码修复方案

问题原因及解决方案

核心问题

你的代码存在两个关键问题:

  • 错误地访问了搜索结果的目标网页,而右侧信息框是谷歌搜索结果页面的元素,并非目标网站的内容
  • 谷歌有反爬机制,直接用requests请求会被拦截,且旧的CSS选择器kno-rdesc已失效

修正后的代码

from bs4 import BeautifulSoup
import requests

def google_search(query):
    # 构造谷歌搜索URL,指定德语界面匹配查询语种
    search_url = f"https://www.google.com/search?q={requests.utils.quote(query)}&hl=de"
    # 添加请求头模拟浏览器访问,避免反爬拦截
    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"
    }
    
    response = requests.get(search_url, headers=headers)
    response.raise_for_status()  # 抛出请求错误,便于排查问题
    
    soup = BeautifulSoup(response.content, 'html.parser')
    # 匹配当前谷歌右侧信息框的描述元素
    answer = soup.find('div', class_='Z0LcW t2b5Cf')
    if not answer:
        # 备选选择器,兼容不同展示场景
        answer = soup.find('span', class_='hgKElc')
    
    return answer.text.strip() if answer else "未找到右侧信息框内容"

result = google_search("Was ist die Hauptstadt von Deutschland")
print(result)

关键改进点

  • 直接请求谷歌搜索结果页,而非跳转至目标网站
  • 添加User-Agent请求头模拟浏览器,绕过基础反爬限制
  • 更新CSS选择器适配当前谷歌页面结构(谷歌会不定期调整元素类名,若后续失效需重新检查页面结构)
  • 增加备选选择器提升兼容性
  • 添加请求错误处理,便于排查网络问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:42:09