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

如何用Python Requests获取包含全部搜索词的谷歌搜索结果

如何修改谷歌搜索代码以仅返回包含全部关键词的结果?

要实现只返回包含所有指定关键词的搜索结果,你需要在提取链接前,先检查每个结果的标题、摘要等内容是否包含全部关键词。以下是修改后的代码及关键逻辑说明:

修改思路

  1. 拆分搜索字符串为独立的关键词列表,统一转为小写以便不区分大小写检查
  2. 定位谷歌搜索结果的完整条目容器(而非单独的a标签),提取每个条目的标题、摘要文本及目标链接
  3. 检查当前条目的文本内容是否包含所有关键词,仅保留符合条件的结果

修改后的代码

import requests
from bs4 import BeautifulSoup

search = 'colette+johnson+beatrix+smith+textbook'
results = 10
url = f"https://www.google.com/search?q={search}&num={results}"

# 拆分并统一关键词为小写
keywords = [kw.lower() for kw in search.split('+')]

requests_results = requests.get(url)
soup = BeautifulSoup(requests_results.content, "html.parser")

# 定位每个搜索结果的容器(谷歌搜索结果通常用class="g"的div包裹)
search_items = soup.find_all("div", class_="g")

for item in search_items:
    # 提取结果的标题和摘要文本
    title = item.find("h3").get_text(strip=True) if item.find("h3") else ""
    snippet = item.find("div", class_="VwiC3b").get_text(strip=True) if item.find("div", class_="VwiC3b") else ""
    full_content = f"{title} {snippet}".lower()
    
    # 检查是否包含所有关键词
    if all(kw in full_content for kw in keywords):
        # 提取目标链接
        link_tag = item.find("a")
        if link_tag and "url?q=" in link_tag.get('href', '') and not "webcache" in link_tag.get('href', ''):
            link_href = link_tag.get('href').split("?q=")[1].split("&sa=U")[0]
            print(link_href)

关键说明

  • 关键词检查:通过all(kw in full_content for kw in keywords)判断当前结果是否包含所有关键词,full_content整合了标题和摘要,确保覆盖结果的核心展示内容
  • 结果容器定位:直接使用class="g"的div作为搜索结果条目,避免提取到页面其他无关链接(如谷歌导航、广告链接等)
  • 不区分大小写:将关键词和内容都转为小写,避免因大小写差异漏判符合条件的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:12:45