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

使用Python爬取Google搜索链接失败,结果列表始终为空

解决Google搜索结果链接获取为空的问题

问题根源

Google会通过请求头识别非浏览器发起的请求,requests.get()默认的User-Agent会被判定为爬虫,返回的页面不包含正常搜索结果的结构(即没有.yuRUbf类的元素),导致你获取的列表始终为空。

修复方案

1. 添加模拟浏览器的请求头

在请求中加入headers参数,伪装成普通浏览器的请求,让Google返回正常的搜索结果页面。

2. 简化关键词编码

使用urllib.parse.quote()自动处理关键词的URL编码,比手动拆分空格更可靠,还能兼容特殊字符(比如示例中的ç)。

修改后的完整代码

import requests
import bs4
from urllib.parse import quote

searchkey = "behzat ç oyuncuları"
print(searchkey)

# 自动处理关键词的URL编码
encoded_key = quote(searchkey)
print("Googling...")

# 添加模拟浏览器的请求头
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"
}

r = requests.get(f"https://www.google.com/search?q={encoded_key}", headers=headers)

# 可选:若仍无结果,可打印r.text检查返回的页面内容是否正常
# print(r.text)

soap = bs4.BeautifulSoup(r.text, "html.parser")

lists = soap.select(".yuRUbf a")
print(lists)
for link in lists:
    print(link.get("href"))

额外说明

  • 若后续Google页面结构变更,.yuRUbf类可能失效,可通过浏览器开发者工具(F12)查看搜索结果链接所在的最新元素选择器。
  • 频繁发起请求可能触发Google反爬机制,建议添加适当的请求间隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:37:26