无法使用 beautifulsoup 抓取 google 搜索结果

2023-12-20

我想抓取谷歌搜索结果,但每当我尝试这样做时,程序都会返回一个空列表

from bs4 import BeautifulSoup
import requests

keyWord = input("Input Your KeyWord :")

url = f'https://www.google.com/search?q={keyWord}'
src = requests.get(url).text
soup = BeautifulSoup(src, 'lxml')

container = soup.findAll('div', class_='g')

print(container)

互补安德烈·凯塞利的 https://stackoverflow.com/a/62466726/15164646回答如果你得到空结果你总是可以爬上去div up or down进行测试并从那里开始。

代码(假设你想抓取title, summary and link):

from bs4 import BeautifulSoup
import requests
import json

headers = {
    'User-agent':
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}

html = requests.get('https://www.google.com/search?q=ice cream',
                    headers=headers).text

soup = BeautifulSoup(html, 'lxml')

summary = []

for container in soup.findAll('div', class_='tF2Cxc'):
  heading = container.find('h3', class_='LC20lb DKV0Md').text
  article_summary = container.find('span', class_='aCOpRe').text
  link = container.find('a')['href']

  summary.append({
      'Heading': heading,
      'Article Summary': article_summary,
      'Link': link,
  })

print(json.dumps(summary, indent=2, ensure_ascii=False))

部分输出:

[
  {
    "Heading": "Ice cream - Wikipedia",
    "Article Summary": "Ice cream (derived from earlier iced cream or cream ice) is a sweetened frozen food typically eaten as a snack or dessert. It may be made from dairy milk or cream and is flavoured with a sweetener, either sugar or an alternative, and any spice, such as cocoa or vanilla.",
    "Link": "https://en.wikipedia.org/wiki/Ice_cream"
  },
  {
    "Heading": "Jeni's Splendid Ice Creams",
    "Article Summary": "Jeni's Splendid Ice Cream, built from the ground up with superlative ingredients. Order online, visit a scoop shop, or find the closest place to buy Jeni's near you.",
    "Link": "https://jenis.com/"
  }
]

或者,您可以使用以下方法执行此操作Google 搜索引擎结果 API https://serpapi.com/search-api来自 SerpApi。它是一个可免费试用的付费 API。

import os
from serpapi import GoogleSearch

params = {
    "engine": "google",
    "q": "ice cream",
    "api_key": os.getenv("API_KEY"),
}

search = GoogleSearch(params)
results = search.get_dict()

for result in results["organic_results"]:
  print(f"Title: {result['title']}\nSummary: {result['snippet']}\nLink: {result['link']}\n")

部分输出:

Title: Ice cream - Wikipedia
Summary: Ice cream (derived from earlier iced cream or cream ice) is a sweetened frozen food typically eaten as a snack or dessert. It may be made from dairy milk or cream and is flavoured with a sweetener, either sugar or an alternative, and any spice, such as cocoa or vanilla.
Link: https://en.wikipedia.org/wiki/Ice_cream

Title: 6 Ice Cream Shops to Try in Salem, Massachusetts ...
Summary: 6 Ice Cream Shops to Try in Salem, Massachusetts · Maria's Sweet Somethings, 26 Front Street · Kakawa Chocolate House, 173 Essex Street · Melt ...
Link: https://www.salem.org/icecream/

Title: Melt Ice Cream - Salem
Summary: Homemade ice cream made on-site in Salem, MA. Bold innovative flavors, exceptional customer service, local ingredients.
Link: https://meltsalem.com/

免责声明,我为 SerpApi 工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 beautifulsoup 抓取 google 搜索结果 的相关文章

  • Discord-py Rewrite - Cog 中的基本 aiohttp Web 服务器

    我正在尝试将基本的 aiohttp 网络服务器集成到 Cog 中 使用 discord py 重写 我对齿轮使用以下代码 from aiohttp import web import discord from discord ext imp
  • 将大型 Twitter JSON 数据 (7GB+) 加载到 Python 中

    我已经通过 AWS 设置了一个公共流来收集推文 现在想做一些初步分析 我的所有数据都存储在 S3 存储桶中 5mb 文件 我下载了所有内容并将所有文件合并为一个 每条推文都按照 Twitter 规范存储为标准 JSON 对象 基本上 合并的
  • python中多个页面的数据串联时出现错误

    我在连接多个页面的数据并将其导出到单个 CSV 文件中时遇到错误 根据我的代码 数据导出到第 10 页 但在第 10 页之后它正在工作 import urllib request from bs4 import BeautifulSoup
  • pandas 数据框列表的列表列表

    我有一个列表的列表 最外层列表的长度为 20 单独的类别 中间列表的长度可变 时间戳列表 内部列表的长度为 5 分割每个时间戳 例如 sTimestamps 0 5 Tue Feb 7 10 06 30 2017 Tue Feb 7 10
  • pyvenv-3.4 返回非零退出状态 1

    我在 Kubuntu 14 04 我想用 python3 4 创建一个 virtualenv 我之前在其他文件夹中使用过 python2 7 但是当我尝试时 pyvenv 3 4 venv 我有 Error Command home fmr
  • 使用 xlwings 排序(pywin32)

    我需要使用 python 按给定行对 Excel 电子表格进行排序 为了进行测试 我使用以下数据 在名为 xlwings sorting xlsx 的文件中 Numbers Letters Letters 2 7 A L 6 B K 5 C
  • 无法在 VS Code 中导入

    我是 python 新手 一直在使用 VS code 现在我正在研究汤普森采样问题 需要 numpy 和 matplotlib 我已经导入了这两个库 但 VS code 给出了无法导入的错误 我知道我必须使用 PIP 进行安装 并且我已经看
  • Python列表内存存储[重复]

    这个问题在这里已经有答案了 据我了解 Python 列表本质上是 C 数组 它们分配特定的顺序内存块 但是 这些内存块实际上存储列表中的数据还是它们只是指向内存中存储实际数据的另一个位置 它可能取决于列表中存储的对象的大小吗 因为您可以轻松
  • 编程式 Google 登录/注销用户 1,然后登录用户 2 (Python)

    我正在开展一个 DIY 项目 为我的家庭中的多个成员检索 Google 位置历史记录 根据 StackOverflow 成员的指示 t m 亚当 https stackoverflow com users 7811673 t m adam
  • 如何将此 XPath 表达式转换为 BeautifulSoup?

    回答一个上一个问题 https stackoverflow com questions 1813921 how to search a html page for an item in a given list 1814616 181461
  • Pandas:如何根据另一个数据框的值对数据框上的列求和

    我是 Pandas 新手 我正在尝试做以下事情 我有一个名为的数据框comms包含articleID和commentScore列 等等 我有另一个名为arts带有列文章 ID 我需要创建arts一个名为文章评分 每篇文章必须具有articl
  • 如何在一段时间后停止执行?

    我想在一定时间后停止执行 Dash 程序 当我关闭浏览器窗口时效果更好 尽管我怀疑这是否可能 有没有办法通过python中断它 我已经尝试过放一个 sys exit 打电话后app run server 虽然据我了解app run serv
  • 如何模拟“焦点”和“打字”事件

    尝试模拟 onfocus 和打字事件 但它不起作用 Sub Login MyLogin MyPass Dim IEapp As InternetExplorer Dim IeDoc As Object Dim ieTable As Obje
  • 循环列表的值[重复]

    这个问题在这里已经有答案了 我是编码新手 正在尝试编写一个简单的代码 该代码将采用一个列表 例如 1 2 3 并循环元素 n 次 所以如果n 1 我应该得到A 3 1 2 如果n 2 我应该得到A 2 3 1 我写的代码是 n 1 j 0
  • 无法使用 beautifulsoup 模块 python 从 HTML 检索温度值

    我正在使用 BeautifulSoup4 来解析此 HTML 查看源代码 https weather com en IN weather today l 17 39 78 49 https weather com en IN weather
  • 如何将 AWS Kinesis Video Stream GetMedia API 输出解码为 mp3/wav?

    我现在使用 GetMedia API 通过 AWS Connect 服务将数据提取到 Kinesis Video Stream KVS 我能够提取Payload但如何将此输出转换为 mp3 wav 我想将此输出提取到 AWS Transcr
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • 类型错误:只能使用标量值执行操作

    如果您能让我知道如何为所提供的表格绘制一些信息丰富的图表 我将不胜感激here https www iasplus com en resources ifrs topics use of ifrs 例如 我需要一个名为 国内非上市公司 非上
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your

随机推荐

  • 使用引用字段值进行聚合中的 Mongodb 正则表达式

    注意 我使用的是 Mongodb 4 我必须使用聚合 因为这是更大聚合的一步 Problem 如何在集合文档中查找包含以同一文档中另一个字段的值开头的字段 让我们从这个集合开始 db regextest insert first Pizza
  • VBA Excel 中的弹出图表

    我想知道是否有一种方法可以根据特定工作表中找到的值 通过按按钮在 Excel 中创建弹出图表 最好的方法是能够在 VBA 中完成它 我一直在研究但找不到任何真正的解决方案 有什么建议么 你 你这个幸运儿 p 由于我有空 我为您创建了一个基本
  • 字符串文字:它们去了哪里?

    我对字符串文字的分配 存储位置感兴趣 我确实找到了一个有趣的答案here https stackoverflow com questions 51592 is there a need to destroy char string or c
  • 自托管 Azure DevOps Agents 卷映射

    在执行容器化任务时 在 K8s 中运行自托管 docker 构建代理时 出现以下错误 我已按照文档进行操作here https learn microsoft com en us azure devops pipelines agents
  • UILabel 优于 UIProgressView,具有多种颜色

    所以我还没有这样做 我正在尝试弄清楚如何做到这一点 所以我制作了一个 UITableView 每个单元格都有一个关联的 NSTimer 现在 在每个自定义 UITableViewCell 中 我都有一个 UIProgressView 作为背
  • 一旦这些容器执行的脚本调用 exit() ,如何退出“docker run”容器

    我有一个 docker compose 设置 分三步部署 构建所有容器并dc up d dc是一个别名docker compose 创建数据库 dc run web usr local bin python create db py 使用以
  • while(i--) s+= a[i]; 是吗?包含 C 和 C++ 中未定义的行为?

    考虑简单的代码 include stdio h define N 10U int main int a N 0 unsigned int i N int s 0 Fill a while i s a i printf Sum is d n
  • 从哪里可以更改 App Store 中已有应用程序的刷新率?

    我在 iPhone 和 Android 应用商店中有一个应用程序 他们有横幅广告和插页式广告 我记得设置刷新率时设置过一次 但现在找不到了 我检查了我的管理员帐户 但找不到可以更改的位置 在 AdMob 网站中的哪里可以找到此设置 登录Ad
  • 堆栈服务容器动态主机名

    我正在从 Docker Cloud 迁移到纯 Docker Swarm 设置 我缺少的一件事是容器如何将主机名设置为 SERVICE NAME SLOT NUMBER 是否可以在 Swarm 堆栈服务中动态设置主机名 容器名称 在您的堆栈
  • 使用 HTML5 CSS3 强制 iframe YouTube 视频居中并在后台完全覆盖屏幕

    如何强制使用 HTML5iframeYouTube视频居中适配 覆盖全屏窗口背景使用CSS3 HTML最终Java 比如说 贝宝 it http paypal it 主页背景或 unity3d com 5 http unity3d com
  • 更改表 ASP.NET 中复选框列表的 css 样式

    我想将 asp net 中复选框的 css 样式更改为与 w3school 上的样式相同的样式https www w3schools com howto tryit asp filename tryhow css custom checkb
  • 使用 Jackson,使用排序键序列化 JSON

    我正在尝试用 Jackson 替换 groovy grails 项目中的自定义 JSON 反 序列化 我无法让 Jackson 输出一个打印精美的 JSON 其中的键按简单的 自然 字母顺序排序 我已经尝试过这个 以及许多变体 mymap
  • Emacs 24 中变量作用域的新规则是什么?

    Emacs 24 现在具有词法范围的变量 当然 它仍然具有动态范围的变量 现在它兼具了两者 我对变量何时具有哪种作用域感到非常困惑 有一个lexical binding控制何时启用词法绑定的变量 我想我读过一些关于defvar现在声明一个动
  • 是什么让钥匙串项目独一无二(在 iOS 中)?

    我的问题涉及 iOS iPhone iPad 中的钥匙串 我认为 但不确定 Mac OS X 下钥匙串的实现提出了相同的问题和相同的答案 iOS 提供五种类型 类别 的钥匙串项目 您必须为键选择这五个值之一kSecClass确定类型 kSe
  • 编辑用户详细信息会创建新用户。设计,Rails 4

    我有一个奇怪的问题 以前创建的表单而不是更新用户详细信息 例如电子邮件或姓名 而是使用给定的详细信息创建新用户 My form 我取自这个代码示例视图 设计 注册 编辑 div class form group div
  • 将计数添加到图例标签

    我正在尝试将计数 百分比添加到饼图的图例标签中 我知道饼图很糟糕 但这不是本文的重点 我想将 Count 的值粘贴到图例上的 Wound Type 标签 但无法弄清楚如何访问以下代码的每次迭代的计数 目标将类似于 裂痕 5 或任何计数 我尝
  • 检查字符串是否不包含另一个字符串

    在 T SQL 中 如何检查一个字符串是否不包含另一个字符串 我有一个nvarchar这可能是 橙子苹果 我想做一个更新 例如 一个列doesn t包含 苹果 如何才能做到这一点 WHERE NOT someColumn LIKE Appl
  • Xcode 自动完成建议 NSArray getter 神秘的“songsAtIndexes”

    我的类中有一个名为 歌曲 的 NSArray 类型的属性 我正在为其创建一个自定义 getter XCode 为我提供了创建方法的选项 songsAtIndexes NSIndexSet indexes 这是什么 为什么 XCode 提供这
  • 在 ViewModel 中获取窗口属性

    我正在构建一个 WPF 应用程序 其中需要从视图模型获取窗口的宽度 高度和位置 我正在使用以下 XAML
  • 无法使用 beautifulsoup 抓取 google 搜索结果

    我想抓取谷歌搜索结果 但每当我尝试这样做时 程序都会返回一个空列表 from bs4 import BeautifulSoup import requests keyWord input Input Your KeyWord url f h