搜索
首页后端开发Python教程使用 Python 抓取 Google 搜索结果

使用 Python 抓取 Google 搜索结果

Google 为企业和研究人员提供了大量数据。它每天执行超过 85 亿次搜索,占据全球搜索引擎市场 91% 的份额。

自 ChatGPT 首次亮相以来,Google 数据不仅用于排名跟踪、竞争对手监控和潜在客户开发等传统目的,还用于开发高级 LLM 模型、训练 AI 模型和增强自然语言处理能力( NLP)模型。

然而,对每个人来说,抓取 Google 并不容易。它需要专业团队和强大的基础设施来进行大规模抓取。

Scrape Google Search Results Using Python

在本文中,我们将学习使用 Python 和 BeautifulSoup 抓取 Google 搜索结果。这将使您能够构建自己的工具和模型,能够大规模利用 Google 的数据。

让我们开始吧!

什么是 Google 搜索结果?

Google 搜索结果是根据在搜索栏中输入的用户查询显示在 Google 上的列表。 Google 大量利用 NLP 来理解这些查询并向用户提供相关结果。除了有机结果之外,这些结果通常还包括特色片段,例如最新的人工智能概述、“人们也问”部分、相关搜索和知识图。这些元素根据用户的查询向用户提供汇总的相关信息。

抓取 Google 搜索数据的应用

Google 搜索数据有多种应用:

  • 构建用于 SEO 目的的排名和关键字跟踪器。
  • 搜索本地企业。
  • 构建 LLM 引擎。
  • 发现未来潜在趋势的爆炸性话题。

为什么用 Python 来抓取 Google 数据?

Python 是一种多功能且强大的语言,它为抓取网站提供了强大的 HTTP 握手配置,而其他语言可能会遇到困难或成功率较低。随着基于网络抓取数据训练的人工智能模型越来越受欢迎,Python 在网络抓取主题中的相关性在开发者社区中不断上升。

此外,由于其语法简单且代码清晰,希望学习 Python 作为网络抓取技能的初学者可以轻松理解它。另外,它在 Discord、Reddit 等平台上拥有巨大的社区支持,可以帮助解决您面临的任何级别的问题。

这种可扩展的语言在网页抓取性能方面表现出色,并提供了强大的框架,如 Scrapy、Requests 和 BeautifulSoup,与其他语言相比,使其成为抓取 Google 和其他网站的绝佳选择。

使用 Python 抓取 Google 搜索结果

本节将教我们创建一个基本的 Python 脚本来检索前 10 个 Google 搜索结果。

要求

要学习本教程,我们需要安装以下库:

  • 请求 - 从 Google 搜索网址提取 HTML 数据。

  • BeautifulSoup — 以结构化格式优化 HTML 数据。

设置

设置很简单。创建一个 Python 文件并安装所需的库以开始使用。

在项目文件夹中运行以下命令:

    touch scraper.py

然后安装库。

    pip install requests
    pip install beautifulsoup4

过程

我们已经完成设置并准备好继续前进的所有东西。我们将使用 Python 中的 Requests 库提取原始 HTML,并使用 BeautifulSoup 对其进行改进并获取所需的信息。

但是这里的“所需信息”是什么?

Scrape Google Search Results Using Python

过滤后的数据将包含以下信息:

  • 标题
  • 链接
  • 显示的链接
  • 描述
  • 结果的位置

让我们首先在 scraper.py 文件中导入已安装的库。

    from bs4 import BeautifulSoup
    import requests

然后,我们将对目标 URL 发出 GET 请求,以从 Google 获取原始 HTML 数据。

headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.361681276786'}
    url='https://www.google.com/search?q=python+tutorials&gl=us'
    response = requests.get(url,headers=headers)
    print(response.status_code)

传递标头对于让抓取工具看起来像一个刚刚访问 Google 搜索页面以获取某些信息的自然用户非常重要。

上面的代码将帮助您从 Google 搜索链接中提取 HTML 数据。如果收到 200 状态码,则表示请求成功。这就完成了为 Google 创建抓取工具的第一部分。

在下一部分中,我们将使用 BeautifulSoup 从 HTML 中获取所需的数据。

    soup = BeautifulSoup(response.text, ‘html.parser’)

这将创建一个 BS4 对象来解析 HTML 响应,因此我们将能够轻松地在 HTML 中导航并找到任何选择的元素及其内部的内容。

要解析此 HTML,我们需要首先检查 Google 搜索页面,以检查在搜索结果的 DOM 位置中可以找到哪些常见模式。

Scrape Google Search Results Using Python

因此,经过检查我们发现每个搜索结果都位于类为 g 的 div 容器下。这意味着,我们只需使用 g 类在每个 div 容器上运行一个循环即可获取其中的信息。

在编写代码之前,我们将从 HTML 中找到标题、描述和链接的 DOM 位置。

如果您检查标题,您会发现它包含在 h3 标签内。从图像中,我们还可以看到该链接位于锚标记的 href 属性中。

Scrape Google Search Results Using Python

显示的链接或引用链接可以在引用标签内找到。

Scrape Google Search Results Using Python

最后,描述存储在类 VwiC3b 的 div 容器内。

Scrape Google Search Results Using Python

将所有这些数据实体包装到单个代码块中:

    touch scraper.py

我们声明了一个有机结果数组,然后循环遍历 HTML 中具有 g 类的所有元素,并将收集到的数据推送到数组中。

运行此代码将为您提供所需的结果,您可以将其用于各种目的,包括排名跟踪、潜在客户生成和优化网站的 SEO。

    pip install requests
    pip install beautifulsoup4

这就是创建基本 Google 抓取脚本的方式。

但是,有一个问题。我们仍然不能完全依赖这种方法,因为这可能会导致我们的 IP 被 Google 屏蔽。如果我们想大规模抓取搜索结果,我们需要一个由优质和非优质代理组成的庞大网络以及先进的技术来实现这一目标。这就是 SERP API 发挥作用的地方!

使用 ApiForSeo 的 SERP API 抓取 Google 信息

另一种抓取 Google 的方法是使用专用的 SERP API。它们更加可靠,不会让您在抓取过程中受阻。

这部分的设置是相同的,只是我们需要在 ApiForSeo 上注册以获取我们的 API 密钥,这将使我们能够访问其 SERP API。

从 ApiForSeo 获取 API 凭证

Scrape Google Search Results Using Python

激活帐户后,您将被重定向到仪表板,您将在其中获取 API 密钥。

Scrape Google Search Results Using Python

您还可以从仪表板本身复制代码。

设置我们的代码以抓取搜索结果

然后,我们将在随机查询上创建 API 请求,以通过 ApiForSeo SERP API 抓取数据。

    from bs4 import BeautifulSoup
    import requests

您也可以尝试任何其他查询。不要忘记将您的 API 密钥放入代码中,否则您将收到 404 错误。

在终端中运行此代码将立即给出结果。

    touch scraper.py

上述数据包含各种点,包括标题、链接、片段、描述和扩展附加链接等特色片段。您还可以从此 API 获得高级功能片段,例如 People Also Ask For、知识图谱、答案框等。

结论

商业的本质正在快速发展。如果您无法获取有关当前趋势和竞争对手的数据,您就有可能落后于每一步都制定数据驱动战略决策的新兴企业。因此,对于企业来说,了解其环境中发生的情况至关重要,而 Google 可以成为实现此目的的最佳数据源之一。

在本教程中,我们学习了如何使用 Python 抓取 Google 搜索结果。如果您觉得本博客有帮助,请在社交媒体和其他平台上分享。

谢谢!

以上是使用 Python 抓取 Google 搜索结果的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用Python查找文本文件的ZIPF分布如何使用Python查找文本文件的ZIPF分布Mar 05, 2025 am 09:58 AM

本教程演示如何使用Python处理Zipf定律这一统计概念,并展示Python在处理该定律时读取和排序大型文本文件的效率。 您可能想知道Zipf分布这个术语是什么意思。要理解这个术语,我们首先需要定义Zipf定律。别担心,我会尽量简化说明。 Zipf定律 Zipf定律简单来说就是:在一个大型自然语言语料库中,最频繁出现的词的出现频率大约是第二频繁词的两倍,是第三频繁词的三倍,是第四频繁词的四倍,以此类推。 让我们来看一个例子。如果您查看美国英语的Brown语料库,您会注意到最频繁出现的词是“th

我如何使用美丽的汤来解析HTML?我如何使用美丽的汤来解析HTML?Mar 10, 2025 pm 06:54 PM

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

python中的图像过滤python中的图像过滤Mar 03, 2025 am 09:44 AM

处理嘈杂的图像是一个常见的问题,尤其是手机或低分辨率摄像头照片。 本教程使用OpenCV探索Python中的图像过滤技术来解决此问题。 图像过滤:功能强大的工具 图像过滤器

Python中的平行和并发编程简介Python中的平行和并发编程简介Mar 03, 2025 am 10:32 AM

Python是数据科学和处理的最爱,为高性能计算提供了丰富的生态系统。但是,Python中的并行编程提出了独特的挑战。本教程探讨了这些挑战,重点是全球解释

如何使用TensorFlow或Pytorch进行深度学习?如何使用TensorFlow或Pytorch进行深度学习?Mar 10, 2025 pm 06:52 PM

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

如何在Python中实现自己的数据结构如何在Python中实现自己的数据结构Mar 03, 2025 am 09:28 AM

本教程演示了在Python 3中创建自定义管道数据结构,利用类和操作员超载以增强功能。 管道的灵活性在于它能够将一系列函数应用于数据集的能力,GE

python对象的序列化和避难所化:第1部分python对象的序列化和避难所化:第1部分Mar 08, 2025 am 09:39 AM

Python 对象的序列化和反序列化是任何非平凡程序的关键方面。如果您将某些内容保存到 Python 文件中,如果您读取配置文件,或者如果您响应 HTTP 请求,您都会进行对象序列化和反序列化。 从某种意义上说,序列化和反序列化是世界上最无聊的事情。谁会在乎所有这些格式和协议?您想持久化或流式传输一些 Python 对象,并在以后完整地取回它们。 这是一种在概念层面上看待世界的好方法。但是,在实际层面上,您选择的序列化方案、格式或协议可能会决定程序运行的速度、安全性、维护状态的自由度以及与其他系

Python中的数学模块:统计Python中的数学模块:统计Mar 09, 2025 am 11:40 AM

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)