网页抓取是一种从多个网站快速收集数据的有效方式。 Web 抓取是一种以各种方式从网页获取数据的技术,包括使用基于云的在线服务、特定的 API,甚至从头开始编写 Web 抓取代码。

网页抓取是一种以各种方式从网页中获取数据的技术。 网页抓取是一种从网站获取大量信息的方法,它是自动完成的。 这些数据大部分是非结构化 HTML,在用于不同应用程序之前,会在文件或数据库中转换为结构化数据。

使用 Python 和 Selenium 进行网页抓取 可以节省您的时间和精力,因为它可以自动浏览网页以获取信息。 Web 抓取是一种从在线资源中提取数据以填充数据库或生成报告的技术。 网络爬虫使用 HTML 解析技术从标准互联网页面中提取数据 - 例如社交媒体帖子、新闻文章、产品列表或在面向公众的网站上发现的其他内容。 网络爬虫应用程序被各个行业的人们使用,从营销研究公司到想要更有针对性的广告选择的小企业主。
从电子商务门户、工作门户和社交媒体平台等网站获取的数据可用于更好地了解客户购买趋势、员工流失行为、客户态度等。Beautiful Soup、Scrappy 和 Selenium 是最突出的库或框架用于 Python 中的网页抓取..

如何从网站上抓取数据?

  1. 使用网页抓取软件: 有两种类型的网络抓取软件。 一是可以本地安装在你的电脑上,二是基于云的数据提取服务,比如 代理抓取、ParseHub、OctoParse 等。
  2. 通过编写代码或聘请开发人员, 您可以让开发人员根据您的需要创建定制的数据提取软件。 然后,开发人员可以使用 Web 抓取 API 或库。 例如,Apify.com 可以轻松获取用于从任何网站抓取数据的 API。 Beautiful Soup 是一个 Python 模块,可让您从网页的 HTML 代码中提取数据。

为什么 Python 是如此出色的网页抓取编程语言?

Python 是一种高级通用编程语言,广泛用于 Web 开发、机器学习应用程序和尖端软件技术。 对于使用过其他编程语言的初学者和经验丰富的程序员来说,Python 是一种出色的编程语言。
Scrapy 是一个基于 Python 的开源网络爬虫平台,拥有庞大的用户群。 它是网络抓取使用最广泛的语言,因为它可以轻松处理大多数程序。 它还包括几个专门为网页抓取而设计的库。 它非常适合抓取网站和从 API 获取数据。 Beautiful Soup 是另一个用于搜索网络的 Python 库。 它生成一个解析树,可以从其中从网站上的 HTML 中提取数据。 Beautiful Soup 可以导航、搜索和更改这些解析树。
另一方面,网络抓取可能会很棘手,因为某些网站会限制您的尝试,甚至禁止您的 IP 地址。 如果您没有可信赖的 API,您将被阻止,因为您反复从相同或不受信任的 IP 地址发送请求。 通过受信任的代理进行抓取可以解决问题,因为它使用受信任的代理池,因此每个请求都会被目标​​网站接受。
如果没有代理,用 Python 编写标准的爬虫可能是不够的。 为了有效地抓取网络上的相关数据,您需要 ProxyCrawl 的 Crawling API,它可以让您抓取大多数网站,而无需处理被禁止的请求或验证码。
设置和工具-
以下是我们简单的抓取工具的要求:

在 Python 中使用 Scraper API 抓取网站

让我们从下载和安装我们将用于此任务的库开始。 在您的控制台上,键入命令:

1
点安装代理爬行

现在一切就绪,是时候开始编写代码了。 首先,导入 ProxyCrawl API:

1
 代理爬取 进口 爬虫API

然后,在初始化 API 后,输入您的身份验证令牌,如下所示:

1
api = ScraperAPI({'令牌': 'USER_TOKEN'})

获取您的目标 URL 或您想在之后抓取的任何网站。 我们将在本指南中使用亚马逊作为示例。

1
目标网址 = 'https://www.amazon.com/AMD-Ryzen-3800XT-16-Threads-Processor/dp/B089WCXZJC'

我们代码的以下部分允许我们下载 URL 的整个 HTML 源代码,如果成功,则在您的控制台或终端上显示输出:

1
2
3
响应 = api.get(targetURL)
if 回复['状态代码'] == 200:
打印(回复['身体'])

如您所见,ProxyCrawl 会响应它收到的每个请求。 如果状态为 200 或成功,我们的代码将只显示抓取的 HTML。 任何其他结果,例如 503 或 404,都表示网络爬虫不成功。 另一方面,API 在世界各地使用了数千个代理,确保获得最佳的数据返回。

只需将它作为参数包含在我们的 GET 请求中。 我们的完整代码现在应该如下所示:

1
2
3
4
5
6
7
8
9
 代理爬取 进口 抓取API

api = ScraperAPI({'令牌': 'USER_TOKEN'})

目标网址 = 'https://www.amazon.com/AMD-Ryzen-3800XT-16-Threads-Processor/dp/B089WCXZJC'

响应 = api.get(targetURL, {'自动解析': '真的'})
if 回复['状态代码'] == 200:
打印(回复['身体'])

如果一切正常,您应该会收到类似于以下的回复:

响应

使用 Selenium 和 ProxyCrawl 进行抓取

Selenium 是一个基于 Web 的自动化工具,它是免费和开源的。 Selenium 在市场上主要用于测试,但也可能用于网页抓取。
使用 pip 安装 selenium
点安装硒
使用 conda 安装 selenium
conda install -c conda-forge selenium
下载 Chrome 驱动程序:
命令:驱动程序 = webdriver.Chrome(ChromeDriverManager().install())
可以找到关于 selenium 的完整文档 此处. 文档是不言自明的; 因此,阅读它以了解如何在 Python 中使用 Selenium。

使用 Selenium Python 进行网页抓取

导入库

1
2
3
4
5
6
7
8
9
进口 os
进口
进口 网络驱动
进口
国内生产总值 进口 图片
进口 io
进口 要求
webdriver_manager.chrome 进口 ChromeDriverManager
selenium.common.exceptions 进口 ElementClickInterceptedException

安装驱动程序

1
2
#安装驱动
驱动程序 = webdriver.Chrome(ChromeDriverManager().install())

API调用

1
curl 'https://api.proxycrawl.com/scraper?token=f3CQqmgkzSWxA6nX5GbKBg&url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB00JITDVD2'

总结

我们的抓取工具现已完成,只需几行代码即可使用 Python 和 Selenium 进行网络抓取。 当然,你可以用你选择的任何方式应用你在这里学到的东西,它会为你提供很多已经处理过的材料。 您不必担心使用 Scraping API 的网站限制或验证码,让您专注于对您的项目或业务最重要的事情。

使用 Python 和 Selenium 进行 Web 抓取可以以多种不同的方式和更大规模的方式使用。 如果您愿意,请尝试使用其他应用程序和功能。 也许您想搜索和收集 Google 照片,跟踪零售网站上的产品定价以了解日常变化,或者甚至为公司提供数据提取解决方案。