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

使用BeautifulSoup find_all无法抓取特定谷歌搜索链接内容

解决Google搜索结果提取无输出的问题

嘿,我来帮你搞定这个爬取Google搜索结果的小麻烦!你现在遇到的情况太常见了——直接用requests请求Google页面,拿到的内容和浏览器里显示的不一样,再加上Google页面的class标签经常更新,自然就找不到目标元素啦。

问题根源

Google会检测请求的来源,像你直接用requests.get()这种不带浏览器标识的请求,会被返回简化版页面或者动态加载的内容,这就导致你之前试的kpS1Ac、YhemCb这些class根本找不到对应的元素。

解决方案

我给你调整了代码,主要做两个关键修改:

  • 模拟浏览器发送请求,添加请求头让Google认为是正常用户访问
  • 用当前有效的元素选择器提取目标内容

修改后的代码如下:

import requests
from bs4 import BeautifulSoup

# 模拟浏览器的请求头,你也可以换成自己浏览器的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'
}

url = "https://www.google.co.in/search?rlz=1C1CHBD_enIN789IN790&ei=iWj5WouoDsfGvgSr16bwDg&q=United+States%09KEEP+SMILIN+FAMILY+DENTAL%092281+N+ZARAGOZA+RD+STE+102&oq=United+States%09KEEP+SMILIN+FAMILY+DENTAL%092281+N+ZARAGOZA+RD+STE+102&gs_l=psy-ab.12...1153407.1153407.0.1154512.0.0.0.0.0.0.0.0..0.0....0...1c.1.64.psy-ab..0.0.0....0.YvWjU-kIBUs"

# 带请求头发送请求,让Google返回正常页面
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')

# 提取目标描述文本,当前这个class是有效的,若失效可自行去浏览器检查新选择器
target_element = soup.find('div', class_='VwiC3b')
if target_element:
    print(target_element.get_text(strip=True))
else:
    print("没找到目标内容!可能Google页面结构又更新了,建议打开浏览器F12查看当前元素的class或选择器")

小提示

如果之后VwiC3b这个class又失效了,你可以这么做:

  1. 打开浏览器访问目标搜索链接
  2. 按F12打开开发者工具
  3. 用“选择元素”工具点击你要提取的文本,查看它对应的HTML标签和class,然后替换代码里的选择器就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:15:07