初学爬虫3,Scrapy框架的入门知识以及使用Scrapy框架爬取股票数据
Scripy框架的入门知识点:
Scrapy 总体:
scrapy框架一共由5个模块和2个中间模块。
5个模块: engine,scheduler,item pipelines(用户编写),download,spiders(用户编写)
2个中间模块: engine spider之间 , engine 和 download 之间有两个中间件模块
Engine模块:控制所有模块,根据条件触发事件
DOWNLOADER:根据请求下载网页
Scheduler:对所有爬取请求进行调度管理。
Downloader Midderware:(Engine和Downloader之间的中间模块):实施上述之间进行用户可配置控制,修改,丢弃,新增请求或响应,可以不配置
Spider:(主要编写的模块)
产生爬取项(scraped item 对象)
解析Downloader返回响应(Resopnse对象)
产生额外的爬取请求(Request对象)
Spider Middleware(spider和Engine 之间的中间模块)(可配置)
目的:对请求和爬取项的再处理
功能:修改,丢弃,新增请求或爬取项
Item Pipelines:(需要用户编写)
以流水线的方式处理Spider产生的爬取项
由一组操作顺序完成,每个操作是一个Item Pipeline类型
(处理包括: 清理,检验,查重爬取项中的HTML数据,将数据存储到数据库)
爬虫常用命令:
Scrapy命令行:
格式:>scrapy<>command>[options][arges],其中 command: scrapy命令
常用命令:(来源于中国慕课网北京理工大学嵩天教授的课,下同)
使用Scrapy爬虫
1.新建工程,使用cmd切换到需要新建工程的地方,我这里是D盘scrapy文件夹下的demo1
新建工程之后会产生一系列文件:
scrapy.cfg:部署爬虫配置文件
init.py: 初始化脚本,不需要编写
items.py:一般不需要,Items代码模板(继承类)
middlewares.py:可以编写 (什么名字表示什么模块)
settings.py: 配置文件,也可以改
spiders : 保存所有的爬虫, 里面的pycache为缓存文件
2.产生一个爬虫
生成名称为demo的爬虫(会在spiders目录下生成demo.py)
demo.py中 parse()用于处理相应,解析内容形成字典,发现新的URL爬取请求
配置爬虫:(修改demo.py)
有两个对象,一个是self,一个是response(相当于网页放回内容的对象)
比如说将返回的html页面存成文件
Scrapy 爬虫的基本用法:
1.流程:创建工程+spider模块,编写spider模块,编写item Pipeline ,优化配置策略
2.涉及的3个类:requests 类, response类,item类(由spider产生信息封装)
3.
Request类(class scrapy.http.Request())
Request对象表示一个http请求,由spider产生,Downloader执行
Response类(class scrapy.http.Response())
表示一个http相应,由Downloader生成,Spider处理
Item类 (class scrapy.item.Item())
表示从html页面中提取的信息内容,由spider生成,Item Pipeline处理,类字典类型,可以按照字典操作
scrapy支持多种html信息提取方法: bs,lxml,re,Xpath Selector,CSS Seletor……
往下就是Scrapy爬取股票数据的例子
(未完待续233)