Python 数据挖掘与机器学习实战 (43):Python 语言简介 2.9.1

阅读数:1 2020 年 1 月 11 日 17:03

Python数据挖掘与机器学习实战(43):Python语言简介 2.9.1

(Scrapy 介绍)

内容简介
本书作为数据挖掘和机器学习的读物,基于真实数据集进行案例实战,使用 Python 数据科学库,从数据预处理开始一步步介绍数据建模和数据挖掘的过程。书中主要介绍了数据挖掘的基础知识、基本工具和实践方法,通过循序渐进地讲解算法,带领读者轻松踏上数据挖掘之旅。本书采用理论与实践相结合的方式,呈现了如何使用逻辑回归进行环境数据检测,如何使用 HMM 进行中文分词,如何利用卷积神经网络识别雷达剖面图,如何使用循环神经网络构建聊天机器人,如何使用朴素贝叶斯算法进行破产预测,如何使用 DCGAN 网络进行人脸生成等。本书也涉及神经网络、在线学习、强化学习、深度学习和大数据处理等内容。
本书以人工智能主流编程语言 Python 3 版作为数据分析与挖掘实战的应用工具,从 Pyhton 的基础语法开始,陆续介绍了 NumPy 数值计算、Pandas 数据处理、Matplotlib 数据可视化、爬虫和 Sklearn 数据挖掘等内容。全书共涵盖 16 个常用的数据挖掘算法和机器学习实战项目。通过学习本书内容,读者可以掌握数据分析与挖掘的理论知识及实战技能。
本书内容丰富,讲解由浅入深,特别适合对数据挖掘和机器学习算法感兴趣的读者阅读,也适合需要系统掌握深度学习的开发人员阅读,还适合 Python 程序员及人工智能领域的开发人员阅读。编程爱好者、高校师生及培训机构的学员也可以将本书作为兴趣读物或教材使用。

Scrapy 是一套基于 Twisted 的异步处理框架,是纯 Python 实现的爬虫框架,用户只需要定制、开发几个模块就可以轻松实现一个爬虫程序,用来抓取网页内容或者图片。如图 2-15 所示为 Scrapy 的基本架构。

这个架构中包含了 Scheduler、Item Pipeline、Downloader、Spiders 及 Engine 这几个组件模块,而图中的箭头线则说明了整套系统的数据处理流程。下面对这些组件进行简单的说明。

Python数据挖掘与机器学习实战(43):Python语言简介 2.9.1

图 2-15 Scrapy 架构

1.Scrapy Engine(Scrapy 引擎)

Scrapy 引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。

2.Scheduler(调度)

调度程序从 Scrapy 引擎接受请求并排序列入队列,并在 Scrapy 引擎发出请求后返还给它们。

3.Downloader(下载器)

下载器的主要职责是抓取网页并将网页内容返还给蜘蛛(Spiders)。

4.Spiders(蜘蛛)

蜘蛛是由 Scrapy 用户自己定义用来解析网页并抓取指定 URL 返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说,Spiders 就是用来定义特定网站的抓取和解析规则。

蜘蛛的整个抓取流程(周期)是这样的:

(1)获取第一个 URL 的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用 start_requests() 方法来实现。该方法默认从 start_urls 中的 URL 中生成请求,并执行解析来调用回调函数。

(2)在回调函数中,可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也包含一个回调,然后被 Scrapy 下载,再由指定的回调处理。

(3)在回调函数中,解析网站的内容,同程使用的是 XPath 选择器(也可以使用 BeautifuSoup、lxml 或其他程序),并生成解析的数据项。

(4)从蜘蛛返回的项目通常会进驻到项目管道。

5.Item Pipeline(项目管道)

项目管道主要负责处理蜘蛛从网页中抽取的项目,它的主要任务是清洗、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。每个项目管道的组件都是由一个简单的方法组成的 Python 类。它们获取了项目管道并执行管道中的方法,同时还需要确定是在项目管道中继续执行还是直接丢掉不处理。

项目管道通常执行的过程是:

(1)清洗 HTML 数据。

(2)验证解析到的数据(检查项目是否包含必要的字段)。

(3)检查是否是重复数据(如果重复就删除)。

(4)将解析到的数据存储到数据库中。

6.Downloader Middlewares(下载器中间件)

下载器中间件是位于 Scrapy 引擎和下载器之间的钩子框架,主要处理 Scrapy 引擎与下载器之间的请求及响应。它提供了一个自定义代码的方式来拓展 Scrapy 的功能。它是轻量级的,对 Scrapy 尽享全局控制的底层的系统。

7.Spider Middlewares(蜘蛛中间件)

蜘蛛中间件是介于 Scrapy 引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。它提供一个自定义代码的方式来拓展 Scrapy 的功能。蜘蛛中间件是一个挂接到 Scrapy 的蜘蛛处理机制的框架,可以插入自定义的代码来处理发送给蜘蛛的请求,以及返回蜘蛛获取的响应内容和项目。

8.Scheduler Middlewares(调度中间件)

为了进一步提高蜘蛛性能,有的蜘蛛在 Scrapy 引擎和调度中间件之间还可以加上调度中间件,主要工作是处理从 Scrapy 引擎发送到调度的请求和响应。它提供了一个自定义的代码来拓展 Scrapy 的功能。

总之,Scrapy 就是基于上述这些组件工作的,而 Scrapy 的整个数据处理流程由 Scrapy 引擎进行控制,其主要的运行过程为:

(1)引擎打开一个域名,此时蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的 URL。

(2)引擎从蜘蛛那里获取第一个需要爬取的 URL,然后作为请求在调度中进行调度。

(3)引擎从调度那获取接下来进行爬取的页面。

(4)调度将下一个爬取的 URL 返回给引擎,引擎将它们通过下载中间件发送到下载器中。

(5)当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎上。

(6)引擎收到下载器的响应并将它通过蜘蛛中间件发送给蜘蛛进行处理。

(7)蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。

(8)引擎将抓取到的项目发送给项目管道,并向调度发送请求。

(9)系统重复第(2)步后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。

Python数据挖掘与机器学习实战(43):Python语言简介 2.9.1

购书地址 https://item.jd.com/12623592.html?dist=jd

评论

发布