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

如何用Python和BeautifulSoup统计谷歌搜索结果中词汇出现次数

谷歌搜索结果短语统计代码解析与优化

Hey,我来拆解下这段代码的核心功能,顺便给你提几个能让它更稳定运行的小建议~

代码核心功能

这段代码的作用很明确:针对指定的查询词q发起谷歌搜索请求,解析搜索结果页面后,统计三个目标短语a1、a2、a3分别在搜索结果标题中出现的次数,最后输出每个短语的统计结果。

修正后的格式化代码

原代码存在几个语法小问题(比如未初始化计数器、Python3的print语法),我帮你整理成可直接运行的版本:

import requests
from bs4 import BeautifulSoup

# 先初始化计数器,避免运行报错
c1 = 0
c2 = 0
c3 = 0

base = "http://www.google.com"
url = f"http://www.google.com/search?q={q}"  # 用f-string拼接更简洁
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")

for item in soup.select(".r a"):
    title_text = item.text
    if a1 in title_text:
        c1 += 1
    if a2 in title_text:
        c2 += 1
    if a3 in title_text:
        c3 += 1

# 用f-string让输出格式更清晰
print(f"{a1}: {c1}")
print(f"{a2}: {c2}")
print(f"{a3}: {c3}")

几个关键注意事项

  • 必须初始化计数器:原代码里c1、c2、c3没有提前赋值,直接运行会触发NameError,一定要先设为0。
  • 谷歌反爬的坑:直接用requests.get访问谷歌搜索大概率会被拦截(返回验证码或403错误),建议给请求加个浏览器的User-Agent头模拟正常访问,比如:
    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"}
    response = requests.get(url, headers=headers)
    
    长期使用的话,更推荐用谷歌官方的自定义搜索API,合规又稳定。
  • 页面选择器可能失效:谷歌的页面结构经常更新,.r a这个选择器说不定哪天就没用了,到时候得重新检查页面元素调整选择器。
  • 大小写敏感问题:当前判断是区分大小写的,如果需要忽略大小写,可以改成if a1.lower() in title_text.lower()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:25:57