Scrspy 命令
Scrapy 中的命令在开发中会经常用到,可以说没有命令就没有 Scrapy ,下面我就来讲解一下 Scrapy 常用的命令。
零、命令分类
Scrapy 具有两种类型的命令,分别是项目命令和全局命令。所谓的项目命令就是在项目中执行的命令,而全局命令则是指不需要在项目中运行的命令(感觉这段有点废话,o(*≧▽≦)ツ)。
1.项目命令 项目命令包含如下 7 个。
命令 |
说明 |
---|---|
crawl |
运行指定爬虫 |
check |
检查爬虫代码 |
list |
列出项目中所有爬虫 |
edit |
编辑爬虫文件 |
parse |
爬取指定的url |
genspider |
创建爬虫 |
bench |
性能检测 |
2.全局命令 全局命令同样包括 7 个。
命令 |
说明 |
---|---|
startproject |
创建项目 |
settings |
查看设置信息 |
runspider |
运行爬虫 |
shell |
打开shell控制台 |
fetch |
下载网页信息 |
view |
浏览器打开指定网址 |
version |
查看版本号 |
一、常用命令解析
常用的 Scrapy 命令由 8 种,分别是 startproject 、 genspider 、 crawl 、 list 、fetch 、 runspider 、 view 和 parse,下面分别来进行介绍。
1.startproject
- 语法格式为:
scrapy startproject [爬虫项目名称] [项目存储文件夹]
Tip:这里需要注意的是项目存储文件夹是个可选参数,如果不指定的话将创建一个和项目名称一样的文件夹来存储爬虫代码。
命令执行后将生成如下结构的项目目录。
下面我针对上面的文件和文件夹进行解释。
- spders:存储的是所有的爬虫文件;
- items.py:定义 Scrapy 的输出内容;
- middlewares.py:定义了爬虫中使用的中间件;
- pipelines.py:定义如何处理爬取的数据;
- settings.py:配置文件,所有的中间件和 pipeline 等必须在这里激活。
2.genspider 通过 startproject 创建了项目基本框架后,我们就可以创建爬虫了。
- 语法格式
scrapy genspider [-t 模板名称] [爬虫名称] [爬取的页面url]
在上面命令中我们可以通过 -t 指令指定爬虫所使用的模板,该指令可以不填写,Scrapy 中存在 4 中模板分别是 basic 、crawl 、 csvfeed 和 xmlfeed 。如果不传递 -t 指令将默认使用 basic 模板,在后面的文章中我们讲解这些模板相关的知识。
3.crawl 创建并编写完爬虫后我们将启动爬虫,启动爬虫的命令很简单.
- 语法
scrapy crawl [爬虫名称]
4.list 当我们的项目中有很多爬虫的时候,我们可以使用 list 命令查看所有的爬虫信息。
- 语法
scrapy list
5.fetch fetch 命令会下载指定的 url 页面。
- 语法
scrapy fetch [设置信息] [url]
设置信息包含 4 种:
- –spider=spider:使用指定的 spider 替换默认值;
- –headers:打印 Response 的 header;
- –no-redirect:不进行重定向抓取;
- –nolog:不输出运行日志。
6.runspider 当我们的项目为创建时可以利用这个命令运行爬虫文件。
- 语法
scrapy runspider [设置信息] spider.py
设置信息常用的指令是 –o File ,它会将抓取的信息保存到 File 里,File 指的是数据要保存的而文件完整路径。 7. view 通过 view 命令可以下载并在默认浏览器中运行页面。
- 语法
scrapy [url]
Tip:有些情况下我们看到的页面和 view 命令现实的页面不一样,这是因为 view 命令加载的页面是不执行页面里的异步加载的部分。
8.parse 这个命令我们经常用来测试爬虫的运行效果。
- 语法
scrapy parse [设置信息] [url]
设置信息包含 8 种:
- –spider=spider:使用指定爬虫;
- –a Name=VALUE:爬虫参数;
- -c:处理 Response 的回调函数;
- -m:向 Request 传递参数,参数格式为 {“name”:“value”};
- –pipelines:指定使用的 items;
- -r:指定使用的 rules ,这个指令只在 crawl 模板中适用;
- –noitems:不显示爬取的item;
- –nolinks:不显示解析链接。
二、总结
这一小节主要讲解了 Scrapy 常用的命令,这些命令在实际开发中很有用。如果在使用中有疑问的话可以使用 scrapy [命令] -h 查看具体用法。
- RESTful WCF
- android顶部导航条
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuil
- slidingmenu开源效果
- MySQL 5.0和PostgreSQL 8.1
- Python入门讲解
- DDM: 一个简洁的前端领域模型库
- 前后端分离之领域模型的思考
- 类选择符和ID选择符
- 仿网易新闻页面效果
- VS.Net 2005 Design-Time Integration
- XML Serializable Generic Dictionary
- MATLAB简易验证码识别程序介绍
- android之listview缓存图片(缓存优化)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现底部带刻度的进度条样式
- Java 实现 Kafka Producer
- Android短信验证服务分享
- android 震动和提示音的实现代码
- 一个简单的Android圆弧刷新动画
- AccessibilityService实现微信发红包功能
- 处理一次k8s、calico无法分配podIP的心路历程
- Android自定义控件实现时钟效果
- Android倒计时控件 Splash界面5秒自动跳转
- Android仿抖音上下滑动布局
- 一个简单的Android轨迹动画
- Android自定义圆环倒计时控件
- Android 使用URLConnection下载音频文件的方法
- Android自定义TimeButton实现倒计时按钮
- android自定义圆形倒计时显示控件