使用 Python 抓取 Google 搜索结果
Google 为企业和研究人员提供了大量数据。它每天执行超过 85 亿次搜索,占据全球搜索引擎市场 91% 的份额。
自 ChatGPT 首次亮相以来,Google 数据不仅用于排名跟踪、竞争对手监控和潜在客户开发等传统目的,还用于开发高级 LLM 模型、训练 AI 模型和增强自然语言处理能力( NLP)模型。
然而,对每个人来说,抓取 Google 并不容易。它需要专业团队和强大的基础设施来进行大规模抓取。
在本文中,我们将学习使用 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 对其进行改进并获取所需的信息。
但是这里的“所需信息”是什么?
过滤后的数据将包含以下信息:
- 标题
- 链接
- 显示的链接
- 描述
- 结果的位置
让我们首先在 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 位置中可以找到哪些常见模式。
因此,经过检查我们发现每个搜索结果都位于类为 g 的 div 容器下。这意味着,我们只需使用 g 类在每个 div 容器上运行一个循环即可获取其中的信息。
在编写代码之前,我们将从 HTML 中找到标题、描述和链接的 DOM 位置。
如果您检查标题,您会发现它包含在 h3 标签内。从图像中,我们还可以看到该链接位于锚标记的 href 属性中。
显示的链接或引用链接可以在引用标签内找到。
最后,描述存储在类 VwiC3b 的 div 容器内。
将所有这些数据实体包装到单个代码块中:
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 凭证
激活帐户后,您将被重定向到仪表板,您将在其中获取 API 密钥。
您还可以从仪表板本身复制代码。
设置我们的代码以抓取搜索结果
然后,我们将在随机查询上创建 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中文网其他相关文章!

在Python中实现工厂模式可以通过创建一个统一的接口来创建不同类型的对象。具体步骤如下:1.定义一个基础类和多个继承类,如Vehicle、Car、Plane和Train。2.创建一个工厂类VehicleFactory,使用create_vehicle方法根据类型参数返回相应的对象实例。3.通过工厂类实例化对象,如my_car=factory.create_vehicle("car","Tesla")。这种模式提高了代码的可扩展性和可维护性,但需注意其复杂

在Python中,r或R前缀用于定义原始字符串,忽略所有转义字符,让字符串按字面意思解释。1)适用于处理正则表达式和文件路径,避免转义字符误解。2)不适用于需要保留转义字符的情况,如换行符。使用时需谨慎检查,以防意外的输出。

在Python中,__del__方法是对象的析构函数,用于清理资源。1)不确定的执行时间:依赖垃圾回收机制。2)循环引用:可能导致无法及时调用,使用weakref模块处理。3)异常处理:在__del__中抛出的异常可能被忽略,使用try-except块捕获。4)资源管理的最佳实践:推荐使用with语句和上下文管理器管理资源。

pop()函数在Python中用于从列表中移除并返回指定位置的元素。1)不指定索引时,pop()默认移除并返回列表的最后一个元素。2)指定索引时,pop()移除并返回该索引位置的元素。3)使用时需注意索引错误、性能问题、替代方法和列表的可变性。

Python进行图像处理主要使用Pillow和OpenCV两大库。Pillow适合简单图像处理,如加水印,代码简洁易用;OpenCV适用于复杂图像处理和计算机视觉,如边缘检测,性能优越但需注意内存管理。

在Python中实现PCA可以通过手动编写代码或使用scikit-learn库。手动实现PCA包括以下步骤:1)中心化数据,2)计算协方差矩阵,3)计算特征值和特征向量,4)排序并选择主成分,5)投影数据到新空间。手动实现有助于深入理解算法,但scikit-learn提供更便捷的功能。

在Python中计算对数是一件非常简单却又充满趣味的事情。让我们从最基本的问题开始:怎样用Python计算对数?用Python计算对数的基本方法Python的math模块提供了计算对数的函数。让我们来看一个简单的例子:importmath#计算自然对数(底数为e)x=10natural_log=math.log(x)print(f"自然对数log({x})={natural_log}")#计算以10为底的对数log_base_10=math.log10(x)pri

要在Python中实现线性回归,我们可以从多个角度出发。这不仅仅是一个简单的函数调用,而是涉及到统计学、数学优化和机器学习的综合应用。让我们深入探讨一下这个过程。在Python中实现线性回归最常见的方法是使用scikit-learn库,它提供了简便且高效的工具。然而,如果我们想要更深入地理解线性回归的原理和实现细节,我们也可以从头开始编写自己的线性回归算法。使用scikit-learn实现线性回归scikit-learn库封装了线性回归的实现,使得我们可以轻松地进行建模和预测。下面是一个使用sc


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

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

SublimeText3汉化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具