Python Web Scraping 简明教程
Python Web Scraping - Introduction
Web 抓取是从 Web 中提取信息的自动化过程。本章将向您提供有关 Web 抓取、它与 Web 爬网的比较以及为什么您应该选择 Web 抓取的深入了解。您还将了解 Web 抓取工具的组成部分和工作原理。
What is Web Scraping?
“抓取”一词的字典含义是指从 Web 上获取某些内容。这里出现两个问题:我们可以从网络上获取什么以及如何获取。
第一个问题的答案是 ‘data’ 。数据对于任何程序员来说都是必不可少的,每个编程项目的基本要求是大量有用的数据。
第二个问题的答案有点棘手,因为获取数据的方法有很多。通常,我们可能从数据库或数据文件和其他来源获取数据。但是,如果我们需要大量可在线获取的数据怎么办?获取此类数据的一种方法是手动搜索(在 Web 浏览器中点击)并保存(复制粘贴到电子表格或文件)所需的数据。这种方法相当乏味且耗时。获取此类数据的另一种方法是使用 web scraping 。
Web scraping ,也称为 web data mining 或 web harvesting ,是构建一个代理的过程,该代理可以自动从 Web 中提取、解析、下载和组织有用的信息。换句话说,我们可以说,Web 抓取软件将自动加载和提取来自多个网站的数据,而不是手动从网站中保存数据,并根据我们的要求进行提取。
Origin of Web Scraping
Web 抓取的起源是屏幕抓取,它用于集成非基于 Web 的应用程序或本机 Windows 应用程序。最初,屏幕抓取是在万维网 (WWW) 广泛使用之前使用的,但它无法扩展 WWW。这使得有必要将屏幕抓取方法自动化, ‘Web Scraping’ 技术应运而生。
Web Crawling v/s Web Scraping
术语 Web 爬网和抓取经常互换使用,因为它们的基本概念是提取数据。但是,它们是彼此不同的。我们可以从它们的定义中理解基本差异。
网络爬取基本上用于使用机器人(又名爬虫)对页面上的信息进行索引。它也称为 indexing 。另一方面,网络抓取是一种使用机器人(又名抓取器)提取信息自动化方式。它也称为 data extraction 。
为了理解这两个术语之间的差异,让我们看看下面给出的比较表 -
Web Crawling |
Web Scraping |
是指下载和存储大量网站的内容。 |
是指通过使用特定于站点的结构从网站中提取单个数据元素。 |
大部分是进行大规模。 |
可以在任何规模实施。 |
Yields generic information. |
Yields specific information. |
被 Google、必应、雅虎等主要搜索引擎使用。 Googlebot 是网络爬虫的一个示例。 |
使用网络抓取提取的信息可用于在一些其他网站中复制,或可用于执行数据分析。例如,数据元素可以是姓名、地址、价格等。 |
Uses of Web Scraping
使用网络抓取的原因和用途和万维网的用途一样无穷无尽。网络抓取器可以像人类一样执行任何操作,比如在线订餐、为你扫描在线购物网站,并在它们可用时购买比赛门票。下面讨论了网络抓取的一些重要用途 -
-
E-commerce Websites - 网络抓取器可以从各种电子商务网站收集特别与特定产品价格相关的数据进行比较。
-
Content Aggregators - 内容聚合器(如新闻聚合器和工作聚合器)广泛使用网络抓取,以向其用户提供最新数据。
-
Marketing and Sales Campaigns - 网络抓取器可用于获取电子邮件、电话号码等数据,为销售和营销活动服务。
-
Search Engine Optimization (SEO) - SEMRush、Majestic 等 SEO 工具广泛使用网络抓取,以告诉企业他们在对他们很重要的搜索关键词中排名如何。
-
Data for Machine Learning Projects - 检索用于机器学习项目的数据依赖于网络抓取。
Data for Research - 研究人员可以通过这种自动化过程节省时间,为其研究工作收集有用的数据。
Components of a Web Scraper
网络抓取器包括以下组件 -
Web Crawler Module
网络抓取器的一个非常必要的组件网络爬虫模块,用于通过对 URL 发出 HTTP 或 HTTPS 请求在目标网站上导航。抓取器下载非结构化数据(HTML 内容)并将其传递给提取器(下一个模块)。