从 Web 收集数据的最强大的技术之一是网络爬虫,它涉及查找一个或多个域的所有 URL。 Python 有几个流行的 Web 爬取库和框架可用——我们将首先介绍不同的 Web 爬取、策略和用例,然后看使用 Python 使用库进行简单的 Web 爬取:请求、 美丽的汤 and Scrapy. 接下来,我们将了解为什么最好使用 Web 爬虫框架,例如 代理爬取.

网络爬虫,也称为网络蜘蛛或网络机器人,会自动在 Internet 上搜索内容。 爬虫一词来自互联网原始搜索引擎Web Crawler,搜索引擎机器人是最著名的爬虫。 搜索引擎使用网络机器人来索引整个 Internet 上的网页内容,以便它们可以出现在搜索引擎结果中。
网络爬虫收集数据,包括网站的 URL、元标记信息、网页内容、页面链接以及这些链接的目的地。 为了防止重复下载同一个页面,他们保留了以前下载的 URL 的注释。 它还检查 HTML 代码和超链接中的错误。

网页抓取 在网站上搜索信息并检索文档以创建可搜索索引。 爬网从网站页面开始,并通过指向其他网站的链接进行,直到所有网站都被扫描。
爬虫可以自动执行以下任务:
• 将网站的旧副本存档为静态 HTML 文件。
• 从电子表格中提取和显示网站内容。
• 识别损坏的链接以及包含它们需要修复的页面。
• 比较旧版和现代版网站。
• 从页面元标记、正文内容、标题和图片描述性替代标记中提取信息

用例

监控竞争对手的价格

零售和企业可以更全面地了解特定实体或消费者群体对其价格策略和竞争对手定价策略的看法 先进的网络爬虫技术. 通过利用这些信息并据此采取行动,他们可以更好地使定价和促销与市场和客户目标保持一致。

监控产品目录

企业还可以使用网络爬虫来收集产品目录和列表。 品牌可以通过监控和分析各个站点上可用的大量产品数据来解决客户问题并满足他们对产品规格、准确性和设计的需求。 这可以帮助公司通过个性化的解决方案更好地瞄准他们的受众,从而提高 客户满意度.

社交媒体和新闻监控

网络爬虫可以跟踪新闻网站、社交媒体网站、论坛以及其他地方对您和您的竞争对手的评价。 这条数据可以方便您的营销团队通过情感分析来监控您的品牌形象。 这可以帮助您更多地了解客户对您的印象以及您与竞争对手的比较。

使用 Beautifulsoup 进行网络爬取

Beautiful Soup 是一个流行的 Python 库,它有助于将 HTML 或 XML 文档解析为树形结构,以便可以找到和提取数据。 这个库有一个简单的界面,带有自动编码转换,使网站数据更容易访问。
该库包括用于遍历、搜索和更改解析树的基本方法和 Pythonic 习惯用法,以及传入和传出文本的自动 Unicode 和 UTF-8 转换。

安装美丽的汤 4

1
点安装beautifulsoup4

安装第三方库

1
2
3
点安装请求
点安装 html5lib
点安装bs4

从网页访问 HTML 内容

1
2
3
4
进口 要求
网址= “https://www.theverge.com/tech”
r = requests.get(URL)
打印(r.content)

解析 HTML 内容

1
2
3
4
5
6
7
8
9
进口 要求
bs4 进口 美丽汤

网址= “http://www.theverge.com/tech”
r = requests.get(URL)

汤 = BeautifulSoup(r.content,
'html5lib')
打印(soup.prettify())
Beautiful Soup 是一个流行的 Python 库,可帮助将 HTML 或 XML 文档解析为树形结构,以便可以找到和提取数据

使用 Scrapy 使用 Python 进行 Web 爬网

Scrapy 是一个 Python 框架,用于使用 Python 进行大规模的网络爬虫。 它为您提供了轻松从网站提取数据、根据需要进行分析以及以您选择的结构和格式保存数据所需的所有功能。
Scrapy 与 Python 2 和 3 兼容。当您使用 Anaconda 时,您可以从 conda-forge 频道下载该软件包,该频道包含适用于 Linux、Windows 和 Mac OS X 的最新软件包。
要使用 conda 安装 Scrapy,请运行:

1
conda install -c conda-forge scrapy

如果你使用的是 Linux 或 Mac OS X,你可以通过以下方式安装 scrapy

1
pip安装scrapy

为了在 shell 中执行爬虫,输入:

1
拿来(“https://www.reddit.com”)

当您使用 Scrapy 抓取某些内容时,Scrapy 会生成一个包含下载数据的“响应”对象。 让我们看看爬虫得到了什么。

1
2
查看(响应)
打印 响应文本
Scrapy 是一个 Python 框架,用于使用 Python 进行大规模的网络爬虫。 它为您提供轻松从网站提取数据所需的所有功能

使用 Python 进行 Web 爬网 代理爬取

爬网可能既困难又令人沮丧,因为某些网站会阻止您的请求,甚至限制您的 IP 地址。 如果不使用代理,在 Python 中编写一个简单的爬虫可能是不够的。 要正确抓取网络上的相关数据,您需要 ProxyCrawl 的 Crawling API,它可以让您抓取大多数网页,而无需处理被禁止的请求或验证码。
让我们演示如何使用 Proxycrawl 的抓取 API 创建您的抓取工具。
我们的基本抓取工具的要求:

  1. 代理爬取帐户
  2. 的Python 3.x
  3. ProxyCrawl Python 库

记下您的 ProxyCrawl 令牌,这将是使用 Crawling API 时的身份验证密钥。 让我们从下载和安装我们将用于这个项目的库开始。 在您的控制台上,键入以下命令:

1
点安装代理爬行

下一步是导入 ProxyCrawl API

1
 代理爬取 进口 抓取API

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

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

输入您的目标 URL 或您希望抓取的任何其他网站。 在此演示中,我们将使用 Amazon 作为示例。

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 在全球使用了数千个代理,确保获得最佳数据。
Crawling API 的最佳功能之一是您可以将内置的数据抓取器用于支持的站点,幸运的是其中包括 Amazon。 将数据抓取器作为参数发送到我们的 GET 请求中以使用它。 我们的完整代码现在应该如下所示:

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

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

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

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

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

要正确抓取网络上的相关数据,您将需要 ProxyCrawl Crawling API,它可以让您抓取大多数网页,而无需处理被禁止的请求或验证码。

总结

使用 Proxycarwl 之类的网络爬取框架,相比其他爬取解决方案,任何规模的爬取都将使得爬取变得非常简单,并且爬取工具只需几行代码即可完成。 您不必担心网站限制或使用 Crawling API 的 CAPTCHA 将确保您的抓取工具始终保持有效和可靠,让您专注于对您的项目或业务最重要的事情。