基本信息
文件名称:《Python网络爬虫技术案例教程》教案 第9章 分布式爬虫.docx
文件大小:9.42 MB
总页数:6 页
更新时间:2025-05-26
总字数:约7.6千字
文档摘要

PAGE6

PAGE6

PAGE3

PAGE3

课题

第9章分布式爬虫

课时

6课时(270min)

教学目标

知识目标:

(1)理解分布式爬虫原理

(2)掌握实现Scrapy-Redis分布式爬虫的方法

(3)掌握使用Scrapyd部署分布式爬虫的方法

能力目标:

(1)能使用Scrapy-Redis实现分布式爬虫

(2)能使用Scrapyd部署分布式爬虫

素质目标:

在解决分布式爬虫过程中遇到的各种问题时,培养问题解决能力和创新思维

教学重难点

教学重点:分布式爬虫原理,实现Scrapy-Redis分布式爬虫的方法,使用Scrapyd部署分布式爬虫的方法

教学难点:使用Scrapy-Redis实现分布式爬虫,使用Scrapyd部署分布式爬虫

教学方法

案例分析法、问答法、讨论法、讲授法

教学用具

电脑、投影仪、多媒体课件、教材

教学过程

主要教学内容及步骤

考勤

【教师】使用APP进行签到

【学生】班干部报请假人员及原因

问题导入

【教师】提出以下问题:

分布式爬虫的原理是什么?

【学生】聆听、思考、举手回答

传授新知

【教师】通过学生的回答引入要讲的知识,介绍分布式爬虫原理,实现Scrapy-Redis分布式爬虫的方法,以及使用Scrapyd部署分布式爬虫的方法等知识

9.1分布式爬虫原理

?【教师】利用多媒体展示“分布式爬虫架构”图片(详见教材),并进行讲解

分布式爬虫是一个整体的框架,它通过多台计算机同时运行爬虫程序协同爬取数据,而协同爬取数据的前提是共享爬取队列,其架构如图所示。

从图可以看出,每个爬虫程序从爬取队列中获取待爬取的Request,并将未处理的Request存入爬取队列中统一去重。爬虫程序有各自的Downloader,分别完成下载任务。

9.2Scrapy-Redis分布式爬虫

?【教师】播放“Scrapy-Redis分布式爬虫”视频(详见教材),并提出以下问题:

如何实现Scrapy-Redis分布式爬虫?

?【学生】观看、思考、举手回答

?【教师】总结学生回答

Python分布式爬虫通常使用Scrapy框架加上Redis数据库实现,通过scrapy-redis模块实现统一任务调度,Redis数据库则存储共享爬取队列。本章以第8章中使用Scrapy框架编写的BaiduSpider项目为例,介绍在两台Windows计算机中实现Scrapy-Redis分布式爬虫的方法。

9.2.1安装和配置Redis数据库

Redis是一个开源(BSD许可)的,支持网络,可基于内存亦可持久化的日志型Key-Value数据库。它支持多种类型的数据结构,如列表(lists)、集合(sets)和有序集合(sortedsets)等,处理速度快。

1.下载Redis

?【教师】利用多媒体展示“下载页面”图片(详见教材),并进行讲解

1在打开的页面中单击“Assets”文字,如图所示。

1

?【教师】利用多媒体展示“下载列表”图片(详见教材),并进行讲解

2打开下载列表,选择“Redis-x64-3.2.100.msi”选项,下载安装文件,如图所示。

2

2.安装Redis

?【教师】利用多媒体展示“欢迎安装”图片(详见教材),并进行讲解

1双击下载好的Redis-x64-3.2.100.msi文件,在打开的对话框中单击“Next”按钮,如图所示。

1

?【教师】利用多媒体展示“同意安装许可”图片(详见教材),并进行讲解

2显示“End-UserLicenseAgreement”界面,勾选“IacceptthetermsintheLicenseAgreement”复选框,单击“Next”按钮,如图所示。

2

……(详见教材)

3.验证Redis

?【教师】利用多媒体展示“连接Redis数据库”图片(详见教材),并进行讲解

1打开命令提示符窗口,切换至Redis安装目录(如C:\ProgramFiles\Redis),输入“redis-cli”命令,按回车键,如果显示正确路径(包括端口号),则表示已经启动服务并连接了Redis数据库,如图所示。

1

?【教师】利用多媒体展示“读写Redis”图片(详见教材),并进行讲解

2输入“setmykeyhello”命令,按回车键,如果返回显示“OK”,表示成功保存一个键值;输入“getmykey”命令,按回车键,可读取键值(此处显示“hello”),如图所示。

2

9.2.2安装redis-py库

Python提供redis-py库用于连接Redis数据库。redis-py库不是Python内置的标准库,使用之前需要安装,安装方法与requests库的安装类似(请参考2.3.2节),此处不再赘述