Python 网页抓取 - 简介

  • 简述

    Web 抓取,也称为 Web 数据挖掘或 Web 收获,是构建能够自动从 Web 中提取、解析、下载和组织有用信息的代理的过程。
    本教程将教您网络抓取的各种概念,并使您能够轻松地抓取各种类型的网站及其数据。
    本教程将对对本学科感兴趣或将本学科作为其课程一部分的毕业生、研究生和研究生有用。本教程适合初学者或高级学习者的学习需求。
    读者必须具备 HTML、CSS 和 Java Script 的基本知识。他/她还应该了解 Web 技术中使用的基本术语以及 Python 编程概念。如果您不了解这些概念,我们建议您先阅读有关这些概念的教程。
  • 什么是网页抓取?

    “报废”一词的字典含义意味着从网络上获取一些东西。这里出现了两个问题:我们可以从网络获得什么以及如何获得。
    第一个问题的答案是‘data’. 数据对于任何程序员来说都是不可或缺的,每个编程项目的基本要求是大量有用的数据。
    第二个问题的答案有点棘手,因为有很多方法可以获取数据。一般来说,我们可能会从数据库或数据文件和其他来源获取数据。但是,如果我们需要大量在线可用的数据怎么办?获取此类数据的一种方法是手动搜索(在 Web 浏览器中单击)并保存(复制粘贴到电子表格或文件中)所需的数据。这种方法非常繁琐且耗时。获取此类数据的另一种方法是使用web scraping.
    Web scraping, 也被称为web data mining或者web harvesting, 是构建代理的过程,该代理可以自动从网络中提取、解析、下载和组织有用的信息。换句话说,我们可以说,网络抓取软件将根据我们的要求自动从多个网站加载和提取数据,而不是手动保存网站数据。
  • 网页抓取的起源

    Web抓取的起源是屏幕抓取,用于集成非基于Web的应用程序或本机Windows应用程序。最初在万维网 (WWW) 广泛使用之前使用屏幕抓取,但它无法按比例扩大 WWW 扩展。这使得有必要自动化屏幕抓取的方法和称为‘Web Scraping’应运而生。
  • 网络爬虫与网络爬虫

    术语 Web Crawling 和 Scraping 通常可以互换使用,因为它们的基本概念是提取数据。但是,它们彼此不同。我们可以从它们的定义中理解基本的区别。
    网络爬虫主要用于使用机器人(也称为爬虫)索引页面上的信息。它也被称为indexing. 另一方面,网络抓取是一种使用机器人(即抓取工具)自动提取信息的方式。它也被称为data extraction.
    要了解这两个术语之间的区别,让我们看看下面给出的比较表 -
    网络爬行 网页抓取
    指下载并存储大量网站的内容。 指使用特定于站点的结构从网站中提取单个数据元素。
    主要是大规模进行。 可以在任何规模上实施。
    产生一般信息。 提供特定信息。
    被谷歌、必应、雅虎等主要搜索引擎使用。Googlebot是网络爬虫的一个例子。 使用网络抓取提取的信息可用于在其他网站中复制或用于执行数据分析。例如,数据元素可以是名称、地址、价格等。
  • 网页抓取的用途

    使用网络抓取的用途和原因与万维网的用途一样无穷无尽。网络爬虫可以做任何事情,比如在线订购食物、为您扫描在线购物网站以及在有空时购买比赛门票等,就像人类可以做的那样。这里讨论了网络抓取的一些重要用途 -
    • E-commerce Websites− 网络爬虫可以从各种电子商务网站收集与特定产品价格特别相关的数据,以进行比较。
    • Content Aggregators− Web 抓取被新闻聚合器和工作聚合器等内容聚合器广泛用于向其用户提供更新的数据。
    • Marketing and Sales Campaigns− 网络爬虫可用于获取销售和营销活动的电子邮件、电话号码等数据。
    • Search Engine Optimization (SEO)− SEMRush、Majestic 等 SEO 工具广泛使用 Web 抓取来告诉企业他们如何对对他们重要的搜索关键字进行排名。
    • Data for Machine Learning Projects− 机器学习项目的数据检索依赖于网络抓取。
    Data for Research− 研究人员可以通过这一自动化过程节省时间,从而为他们的研究工作收集有用的数据。
  • Web Scraper 的组件

    网络刮刀由以下组件组成 -

    网络爬虫模块

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

    提取器

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

    数据转换与清洗模块

    上面提取的数据不适合即用型。它必须通过一些清洁模块,以便我们可以使用它。可以使用字符串操作或正则表达式等方法来实现此目的。请注意,提取和转换也可以在一个步骤中执行。

    存储模块

    提取数据后,我们需要按照我们的要求进行存储。存储模块将以标准格式输出数据,可以存储在数据库或 JSON 或 CSV 格式中。
  • 网络刮刀的工作

    Web scraper 可以定义为用于下载多个网页内容并从中提取数据的软件或脚本。
    网络刮刀
    如上图所示,我们可以通过简单的步骤了解网络爬虫的工作原理。

    第 1 步:从网页下载内容

    在此步骤中,网络爬虫将从多个网页下载请求的内容。

    第 2 步:提取数据

    网站上的数据是 HTML 并且大多是非结构化的。因此,在这一步中,网络爬虫将从下载的内容中解析和提取结构化数据。

    第 3 步:存储数据

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

    第 4 步:分析数据

    成功完成所有这些步骤后,网络爬虫将分析由此获得的数据。