使用Python在VS Code中无法获取谷歌搜索结果,Colab可正常运行
解决谷歌搜索结果爬取异常问题
问题根源
谷歌的反爬机制会校验请求的User-Agent头:本地用requests.get()发起请求时,默认请求头会被识别为非浏览器的机器人请求,返回的内容是带验证或仅含基础页面元素的内容,自然拿不到有效搜索链接;而Google Colab的环境默认请求头更接近真实浏览器特征,所以能正常获取结果。
修复代码
给请求添加模拟浏览器的请求头,同时调整链接筛选逻辑(谷歌搜索结果的有效链接通常嵌套在特定类名的容器中),修改后的代码如下:
import requests from bs4 import BeautifulSoup # 模拟浏览器的请求头,可替换为你当前浏览器的真实UA 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' } url = "https://www.google.com/search?q=wikipedia&num=10" requests_results = requests.get(url, headers=headers) soup_result = BeautifulSoup(requests_results.content, "html.parser") # 提取有效搜索结果链接 for result_container in soup_result.find_all('div', class_='yuRUbf'): link = result_container.find('a')['href'] print(link)
额外提醒
User-Agent可以在浏览器开发者工具的Network面板里,随便找一个请求查看Request Headers获取真实值- 即使加了请求头,频繁请求仍可能触发谷歌的验证机制,建议控制请求频率,必要时使用代理
- 爬取前请遵守谷歌的服务条款,避免过度爬取影响服务正常运行
内容的提问来源于stack exchange,提问作者Itisai
相关产品推荐
相关产品推荐

