如何用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
相关产品推荐
相关产品推荐

