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

BS4谷歌Dork爬虫if语句逻辑错误:误输出垃圾链接求助

Google Dork爬虫逻辑修复方案

问题核心

原脚本因多个独立if语句的逻辑顺序错误,导致无结果带垃圾推荐的场景下,会同时输出错误提示和垃圾链接,需调整判断优先级,确保同一场景仅触发对应分支。

修复逻辑

  1. 优先判定无结果带垃圾推荐:通过.rQUFld、#topstuff或.Uj3I6c.lsMMHb任一标识识别
  2. 其次判定完全无结果:通过div.eqAnXb#res标识识别
  3. 最后处理正常有效结果:提取a:has(h3)指向的有效链接

修复后代码

import requests
import bs4

url = "https://www.google.com/search"
params = {"q": 'here_is_some_google_dork'}  
headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0"}
response = requests.get(url, params=params, headers=headers)
soup = bs4.BeautifulSoup(response.content, "html.parser")

# 无结果但带垃圾推荐的情况
if soup.select_one('.rQUFld, #topstuff, .Uj3I6c.lsMMHb'):
    print("无结果(含垃圾推荐)")
# 完全无结果的情况
elif soup.select_one('div.eqAnXb#res'):
    print("无结果(无任何链接)")
# 存在有效链接的情况
elif soup.select("a:has(h3)"):
    print("找到有效链接:")
    for a in soup.select("a:has(h3)"):
        print(a["href"])
# 兜底处理(应对页面结构变更)
else:
    print("未识别到结果类型,请检查页面结构")

代码说明

  • 用select_one替代select提升判断效率,仅需确认元素是否存在
  • 采用elif链式判断,保证同一时间仅触发一个逻辑分支
  • 整合所有提供的页面标识,提升场景判定的准确性
  • 增加兜底分支,避免因Google页面结构变更导致的逻辑失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:54:22