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 查看具体用法。