scrapy框架介绍:
scrapy 框架是一个爬虫框架,是为了提高爬虫效率开发的框架。可以通过redis数据库实现分布式爬虫,(分布式爬虫是将爬虫程序url分布到其他电脑进行爬虫程序)。
scrapy框架安装同样是在命令行运行:pip install scrapy -i https://pypi.douban.com.simple
会把辅助框架一起给下载了,
scrapy 框架基础命令介绍:
第一步:cmd创建scrapy爬虫项目:scrapy startproject 项目名称xxx (如:scrapy startproject meituan )
在终端运行(cmd)scrapy startproject meituan 会自动生成一个meituan的文件夹。
创建完爬虫项目,接着要创建爬虫任务。(爬虫项目是个文件夹,爬虫任务是一个.py文件)
第二步: 我们需要cd 到爬虫项目的根目录,cd meituan (我们创建完爬虫项目会有对应的提示)
cd 进根目录后 接着创建爬虫任务
scrapy genspider example example.com创建爬虫任务
example 是项目名称 , example.com是域名。
我们可以改为:scrapy genspider movie meituan.com
出现一个meituan项目名文件件:项目文件
- 1.项目同名的文件夹 : 处理scrapy核心代码 -- spiders:爬虫组件: 定义起始url,提取数据 -- __init__.py初始化文件,自带的一个起始文件, -- items.py:构建item对象,告诉引擎究竟是保存还是继续发送网络请求 -- middlewares.py 中间件: 下载器中间件:用来做请求头参数的设置 -- piplines.py: 管道,处理保存逻辑,本地(josn,txt,html) -- settings: 设置,参数的设置,作用
在这个scrapy框架中我们只需要确认起始的url ,和解析保存即可,发送请求不需要我们搞。
我们创建一个movie爬虫任务,我们可以看到他自动生成一个类,继承与scrapy.Spider 这个方法。我们点击去看一下这个类方法。这个类方法会对我们的url进行迭代(for循环),然后去发送request请求,yield交给了引擎。
命令都是在cmd里面运行的,或者在pycharm终端运行也可以
基础命令了解
bench : scrapy bench 快速的测试一下框架运行起来的样子
fetch : scrapy fetch url 拿一个url进行测试 对展示出对应的响应
genspider: 创建爬虫任务用的
runspider: 运行爬虫项目
shell: 类似ipython环境,快速的进行一些代码的测试: 测试部分代码的执行的时候使用
startproject: 创建爬虫项目
version: 显示版本
view: view视图 scrapy view https://www.baidu.com
快速的测试一个url的响应的获取,渲染出来,为了检验成功与否
scrapy 框架的文件认识:
spiders: 创建爬虫任务之后,爬虫组件中多了一个同名.py的文件 一个初始化文件__init__.py items.py: --有一个类的定义,可以创建items对象,用来承载,运输需要保存到管道的数据 middlewares.py: --一个是爬虫器中间件 --一个是下载器中间价: 设置请求头参数: UA ,Cookie ,IP,Referer piplines.py: --管道 items 对象返回的数据在这里保存 --有一个类的定义,里面有一个process_item处理item对象的方法,在此方法里面进行数据的保存 settings: --配置信息 --USER_AGENT: 全局的UA设置: 不管多少个请求对象,都用这个设置在settigns里面的全局UA值,, --ROBOTSTXT_OBEY = True: robots协议的设置: 需要手动改成False
启动爬虫任务:
启动爬虫任务:路径需要在根目录之下(同样是在命令行运行)
scrapy crawl 爬虫任务的名称 (scrapy crawl movie )