《Python网络爬虫》 课件 第5单元-爬虫优化策略.pptx
Python网络爬虫
第五单元爬虫优化策略
教学概述
概述
为了提升网络爬虫的稳定性,我们往往会在基础爬虫程序中做一些优化策略,比如:
设置下载延迟;
优化Cookie存储;
优化User-Agent;
使用IP代理池;
模拟用户行为等。
优化网络爬虫程序不仅仅是要提升网络爬虫的稳定性,另一个优化策略就是提升网络爬虫的效率。在第四部分我们已经就反爬虫策略对应的稳定性策略做了处理,本次内容主要讲解通过Scrapy和Redis结合提高网络爬虫的效率,并处理重复请求的自动过滤。
第五单元爬虫优化策略
情境一:分布式爬取电影数据
PART
01
情境概述
情境一:分布式爬取电影数据
情境概述
学习情境描述
教学情境描述:在已有网络爬虫知识和技术的基础上,通过Redis数据源或目标数据存储,完成自动去重;将Redis和Scrapy结合,将多层级批量数据采集程序切换成分布式爬虫程序,并进行异步网络请求,提高网络爬虫的效率。
关键知识点:Redis库环境管理;Redis数据存储。
关键技能点:Redis存储数据。
情境一:分布式爬取电影数据
情境概述
本节课的学习目标
理解Scrapy网络爬虫框架及原理。
掌握Scrapy项目系统配置及爬虫策略配置。
掌握本地Redis的安装配置。
掌握Python模块库(Redis等)安装管理应用。
能根据实际网页源,分析网络爬虫请求限制。
能使用Scrapy+Redis进行分布式数据采集工作。
能使用XPath规范格式化文档并获取目标数据。
能使用PyMySQL完成MySQL结构化数据存储。
情境一:分布式爬取电影数据
情境概述
本节课的任务书
安装配置Redis本地环境。
安装管理Redis库。
完成Scrapy和Redis项目整合。
完成Scrapy+Redis分布式数据采集。
情境一:分布式爬取电影数据
PART
02
知识准备
情境一:分布式爬取电影数据
知识准备
引导问题
都有哪些方式可以优化网络爬虫程序?
了解什么是分布式爬虫,分布式爬虫为什么能优化网络爬虫程序?
Redis框架体系结构及原理是什么?
Scrapy和Redis如何组合构建网络爬虫程序?
情境一:分布式爬取电影数据
知识准备
知识点介绍
Scrapy
Redis
情境一:分布式爬取电影数据
知识准备
Redis
情境一:分布式爬取电影数据
Redis介绍
Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)。
Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的API。
知识准备
Redis安装与配置
情境一:分布式爬取电影数据
下载软件
在Github上查找RedisWindows平台编译版本,当前最新稳定版为5.0.10,地址为:
安装软件
运行下载的Redis安装包:Redis-x64-5.0.10.msi,选定安装地址,默认安装即可。
安装过程如下:
/tporadowski/redis/releases
案例讲解
情境一:分布式爬取电影数据
知识准备
情境一:分布式爬取电影数据
验证安装
验证Redis安装,在CMD中启动Redis服务。效果如图:
知识准备
情境一:分布式爬取电影数据
Redis配置
在安装Redis过程中,有选项选择是否将Redis安装路径添加到系统环境中,若未选择,则将其添加在Path下。效果如图:
知识准备
Redis命令
情境一:分布式爬取电影数据
redis-cli
redis-cli命令指的是Redis安装目录下的redis-cli.exe文件,此命令用于在Redis服务上执行操作,而要在redis服务上执行命令需要一个red