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

使用googlesearch库爬取谷歌搜索结果时如何实现短语精确匹配

谷歌搜索精确短语匹配爬取解决方案

你当前遇到的是googlesearch库查询参数转义,以及谷歌搜索运算符使用不规范导致的精确匹配失效问题,可通过以下方法解决:

方法1:修正查询语句写法

你之前的转义写法可能被库自动吞掉,导致双引号没有实际传递给谷歌搜索接口,同时site运算符不需要加https://前缀,调整后代码如下:

from googlesearch import search   

# 外层用单引号包裹查询串,内部直接写双引号实现精确匹配,site后直接写域名
query = '"water outage" site:heraldsun.com'

# 新增safe参数关闭内容过滤,避免匹配结果被意外拦截
for j in search(query, tld="com", num=100, stop=None, pause=2, safe='off'):
    print(j)

方法2:新增二次校验逻辑兜底

谷歌本身的搜索逻辑偶尔会返回不完全匹配的结果,你可以在拿到链接后,爬取页面内容做精确校验,确保结果完全符合要求:

from googlesearch import search
import requests
from bs4 import BeautifulSoup

query = '"water outage" site:heraldsun.com'
# 配置请求头避免被目标网站拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

for url in search(query, tld="com", num=100, stop=None, pause=2):
    try:
        resp = requests.get(url, headers=headers, timeout=10)
        resp.encoding = resp.apparent_encoding
        page_content = BeautifulSoup(resp.text, 'lxml').get_text()
        # 精确匹配目标短语
        if "water outage" in page_content:
            print(url)
    except:
        # 跳过请求失败、解析失败的链接
        continue

其他注意事项

  • pause参数不要低于2秒,否则容易触发谷歌反爬机制,返回异常的缓存结果
  • 不要修改search方法的tld参数,保持为com才能和普通谷歌网页搜索的结果对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:54:03