scrapy爬虫框架理解
Scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且使用起来非常的方便。它可以应用在数据采集、数据挖掘、网络异常用户检测、存储数据等方面。
组件:
Scrapy Engine (引擎):是scrapy的框架核心,总的来说就是负责爬虫请求的调控以及数据的流向控制。
调度器(Scheduler):用来接受引擎发过来的请求request, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址。
下载器(Downloader):获取网页内容, 并将获取的页面数据提供给引擎,而后提供给spider。
Spiders:是用户编写用于分析response 并提取item(即获取到的item)或额外跟进的URL的类。
Pipeline(项目管道):负责处理被spider提取出来的item。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
下载器中间件(Downloader Middlewares):
位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。
Spider中间件(Spider Middlewares):
介于Scrapy引擎和爬虫之间的框架,主要是处理spider的响应输入(response)和输出(item及request)。
调度中间件(Scheduler Middewares):
介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。
猫眼电影—TOP100排行榜
这个任务较简单,所对应的是静态的HTML。
静态HTML:使用单纯的HTML或者结合CSS制作的包括图片、文字等的只供用户浏览但不包含任何脚本、不含有任何交互功能的网页。
动态的HTML:网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如javascript,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能。
动态页面可以人机互动,静态只能回服务器的数据库再回到页面。
scrapy实战
1.生成工程
cmd命令行中输入:
2.在工程中产生一个scrapy爬虫
cmd中输入:
3.爬取整个网页
①配置settings.py
将默认的“True”改为"False",代表不遵守协议
添加‘User-Agent’,模拟浏览器,应对反爬。
②编写items.py文件
③编写Pipelines.py文件
Pipelines.py文件完整代码
④配置产生的Spider
运行结果
部分展示: