📜  Python Web爬网-简介

📅  最后修改于: 2020-11-07 07:58:33             🧑  作者: Mango


Web抓取是从Web提取信息的自动过程。本章将为您提供有关Web抓取的深入概念,它与Web抓取的比较以及为什么要选择Web抓取。您还将了解网络刮板的组件和工作原理。

什么是网页抓取?

词典中“ Scrapping”一词的含义意味着可以从网络中获取某些东西。这里出现两个问题:我们可以从网上获得什么以及如何获得。

第一个问题的答案是“数据” 。数据对于任何程序员来说都是必不可少的,每个编程项目的基本要求是大量有用的数据。

第二个问题的答案有些棘手,因为有很多方法可以获取数据。通常,我们可能会从数据库或数据文件以及其他来源获取数据。但是,如果我们需要大量在线可用数据,该怎么办?获取此类数据的一种方法是手动搜索(在Web浏览器中单击)并保存(将其复制粘贴到电子表格或文件中)所需的数据。该方法非常繁琐且耗时。获取此类数据的另一种方法是使用Web抓取

Web抓取,也称为Web数据挖掘Web收获,是构建可自动从Web提取,解析,下载和组织有用信息的代理的过程。换句话说,我们可以说,Web抓取软件不是手动从网站保存数据,而是根据我们的要求自动从多个网站加载和提取数据。

Web爬网的起源

Web抓取的起源是屏幕抓取,它用于集成非基于Web的应用程序或本机Windows应用程序。最初在广泛使用万维网(WWW)之前就使用了屏幕抓取功能,但是它无法扩大WWW的规模。这使得有必要使屏幕抓取方法自动化,并且称为“ Web Scraping”的技术应运而生。

Web爬网与Web爬网

术语“ Web爬网”和“爬网”经常互换使用,因为它们的基本概念是提取数据。但是,它们彼此不同。我们可以从它们的定义中了解基本区别。

基本上,Web爬网用于使用bot aka爬网程序对页面上的信息进行索引。也称为索引。一方面,网络抓取是使用机器人(也称为抓取工具)提取信息的自动化方式。也称为数据提取

要了解这两个术语之间的区别,让我们看一下下面给出的比较表-

Web Crawling Web Scraping
Refers to downloading and storing the contents of a large number of websites. Refers to extracting individual data elements from the website by using a site-specific structure.
Mostly done on large scale. Can be implemented at any scale.
Yields generic information. Yields specific information.
Used by major search engines like Google, Bing, Yahoo. Googlebot is an example of a web crawler. The information extracted using web scraping can be used to replicate in some other website or can be used to perform data analysis. For example the data elements can be names, address,
price etc.

Web爬网的用途

使用网络抓取的用途和原因与万维网的用途一样多。网络刮板可以做任何事情,例如订购在线食品,为您扫描在线购物网站以及在有空的时候购买火柴票等,就像人类可以做的一样。此处讨论了网络抓取的一些重要用途-

  • 电子商务网站-Web抓取工具可以从各个电子商务网站收集与特定产品价格特别相关的数据以进行比较。

  • 内容聚合器-内容收集器(如新闻聚合器和作业聚合器)广泛使用Web抓取功能,以向其用户提供更新的数据。

  • 营销和销售活动-Web抓取工具可用于获取电子邮件,电话号码等数据,以进行销售和营销活动。

  • 搜索引擎优化(SEO) -SEMush,Majestic等SEO工具广泛使用了Web抓取功能,以告知企业如何对与他们相关的搜索关键字进行排名。

  • 机器学习项目的数据-机器学习项目的数据检索取决于Web抓取。

研究数据-研究人员可以通过此自动化过程节省时间,从而为研究工作收集有用的数据。

Web刮板的组件

网页刮板由以下组件组成-

网络爬虫模块

Web搜寻器的一个非常必要的组件,即Web搜寻器模块,用于通过向URL发出HTTP或HTTPS请求来导航目标网站。搜寻器下载非结构化数据(HTML内容),并将其传递给下一个模块提取器。

提取器

提取器处理获取的HTML内容,并将数据提取为半结构格式。这也称为解析器模块,并使用不同的解析技术(例如正则表达式,HTML解析,DOM解析或人工智能)来实现其功能。

数据转换和清理模块

上面提取的数据不适合立即使用。它必须通过一些清洁模块,以便我们可以使用它。诸如String操作或正则表达式之类的方法可用于此目的。注意,提取和变换也可以在单个步骤中执行。

存储模块

提取数据后,我们需要根据需要存储它。存储模块将以标准格式输出数据,该数据可以以数据库或JSON或CSV格式存储。

Web刮板的工作

Web刮板可以定义为用于下载多个网页的内容并从中提取数据的软件或脚本。

网络刮板

如上图所示,我们可以通过简单的步骤来了解刮板的工作原理。

步骤1:从网页下载内容

在此步骤中,网络抓取工具将从多个网页下载请求的内容。

步骤2:提取资料

网站上的数据是HTML,大部分都是非结构化的。因此,在此步骤中,Web爬虫将解析并从下载的内容中提取结构化数据。

步骤3:存储数据

在这里,网络抓取工具将以CSV,JSON或数据库等任何格式存储和保存提取的数据。

步骤4:分析数据

成功完成所有这些步骤后,卷筒纸刮板将分析由此获得的数据。