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

如何用BeautifulSoup和Requests识别谷歌搜索零结果?代码优化求助

检测谷歌搜索是否返回零结果的优化方案

原代码通过查找带有xmlns="http://www.w3.org/2000/svg"属性的元素判断无结果,逻辑极不稳定——谷歌页面结构随时可能调整,且有结果的页面也存在大量SVG元素,完全无法准确判断搜索状态。以下是两种可靠的实现方案:

方案1:检测无结果提示文本

谷歌搜索无结果时,会显示明确的提示文案(中文界面为"没有找到与您的查询匹配的内容",英文界面为"No results found"),直接定位该提示即可判断。

import requests
from bs4 import BeautifulSoup

# 添加请求头模拟浏览器,避免触发谷歌反爬
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"
}

site = input("Input the domain of the top level domain: ")
textsearch = input("Input what text you're looking for: ")

search_url = f"https://www.google.com/search?q=site%3A.{site}+%22{textsearch}%22"
r = requests.get(search_url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')

# 检测中文无结果提示,英文环境替换为"No results found"
no_result_flag = soup.find("div", text="没有找到与您的查询匹配的内容")

if no_result_flag:
    print("搜索返回零结果")
else:
    print("搜索存在匹配结果")

方案2:提取搜索结果数量判断

谷歌页面顶部会显示结果统计(如"约 0 条结果"),通过正则提取数字部分,直接判断是否为零。

import requests
from bs4 import BeautifulSoup
import re

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"
}

site = input("Input the domain of the top level domain: ")
textsearch = input("Input what text you're looking for: ")

search_url = f"https://www.google.com/search?q=site%3A.{site}+%22{textsearch}%22"
r = requests.get(search_url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')

# 定位结果统计元素(谷歌页面通常用id="result-stats"标记)
result_stats = soup.find(id="result-stats")

if result_stats:
    # 正则提取数字,去除千位分隔符后转整数
    num_match = re.search(r'([\d,]+)', result_stats.text)
    if num_match:
        result_count = int(num_match.group().replace(',', ''))
        if result_count == 0:
            print("搜索返回零结果")
        else:
            print(f"搜索返回{result_count}条结果")
    else:
        print("无法识别结果数量")
else:
    print("无法获取结果信息,可能触发人机验证或页面结构变更")

关键注意事项

  • 反爬处理:必须携带User-Agent请求头,否则谷歌会返回人机验证页面,导致无法解析内容。频繁请求时建议添加代理或设置请求间隔。
  • 语言适配:若使用英文谷歌搜索,需对应修改提示文本或正则匹配逻辑。
  • 结构变更:谷歌页面结构可能调整,若后续代码失效,需重新查看HTML结构更新元素定位规则。

内容的提问来源于stack exchange,提问作者Alex is funny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:53:31