常用命令
1、全局命令
全局命令即为不进入Scrapy爬虫项目所在目录的情况下,运行scrapy命令。运行scrapy -h,在commands下回出现所有的全局命令。分别为fetch、runspider、settings、shell、startproject、version、view。
其中bench命令比较特殊,虽然在Available commands中,但是仍然归为项目命令
(1)fetch命令
fetch命令主要用来显示爬虫爬取的过程
scrapy fetch http://mail.qq.com/
结果显示:
如果fetch命令在Scrapy项目中使用则会调用项目内的爬虫进行网页爬取,否则将使用Scrapy默认的爬虫进行网页的爬取。
scrapy fetch --headers --nolog http://news.sina.com.cn/
参数 | 作用 |
---|---|
–headers | 参数控制显示对应的爬虫爬取网页时候的头信息 |
–nolog | 参数来控制不显示日志信息 |
–spider=SPIDER | 参数来控制使用哪个爬虫 |
–logfile=FILE | 参数来制定存储日志信息的文件 |
– loglevel=LEVEL | 参数控制日志等级 |
结果:
(2)runspider命令
runspider可以不再项目内执行直接运行一个爬虫文件
首先编写一个爬虫文件:first.py
# -*- coding: utf-8 -*-
from scrapy.spider import Spider
class FirstSpider(Spider):
name = "first"
allowed_domains = ["baidu.com"]
start_url = [
"www.baidu.com",
]
def parse(self, response):
pass
然后通过runspider命令执行爬虫文件
scrapy runspider --loglevel=INFO first.py
结果:
可以看到runspider可以不依靠scrapy项目的情况下完成该爬虫文件的运行。
(3)settings命令
通过settings命令可以查看scrapy项目配置或者在项目外查看scrapy默认的配置。
(4)shell命令
通过shell命令可以启动Scrapy的交互终端(Scrapy shell)
Scrapy的交互终端经常在开发以及调试的时候用到,使用Scrapy的交互终端可以实现在不启动Scrapy爬虫的情况下,对网站响应进行调试,同样,在该终端中,我们也可以写一些Python代码进行测试。
scrapy shell http://www.baidu.com --nolog
在执行该命令后,出现”>>>”后可以输入交互命令及相应的代码。该交互模式中,可以使用XPath表达式等。
例如:
ti=sel.xpath("/html/head/title")
print(ti)
(5)startproject命令
创建Scrapy项目
(6)version命令
通过version命令,可以直接显示Scrapy的版本相关信息。
(7)view命令
通过view命令我们可以实现下载某个网页并用浏览器查看的功能。
scrapy view http://news.163.com
执行该命令后,会自动打开浏览器并展示已下载到本地的页面。
2、项目中使用命令
Scrapy项目命令需要基于Scrapy爬虫项目才可以使用。
scrapy -h
查看在项目中可用的命令
Scrapy项目命令主要有:bench、check、crawl、edit、genspider、list、parse
(1)Bench命令
使用bench命令可以测试本地硬件的性能
scrapy bench
测试结果每分钟大约能爬2820个网页。这只是一个参考标准,在实际运行爬虫项目,会忧郁各种因素导致速度不同。一般来说,可以根据实际运行的速度与该参考速度进行对比结果,从而对爬虫项目进行优化和改进。
(2)Genspider
使用genspider命令来创建Scrapy爬虫文件,这是一种快速创建爬虫文件的方式。
scrapy genspider -l
该命令的-l参数来查看当前可以使用的爬虫模板,当前可使用的爬虫模板有basic、crawl、csvfeed、xmlfeed
可以基于其中的任意一个爬虫模板来生成一个爬虫文件。
scrapy genspider t 模板新爬虫名新爬虫爬取的域名
例如:
scrapy genspider -t basic bangbing www.baidu.com
执行后,成功基于basic爬虫模板创建了一个新的爬虫文件bangbing,定义爬取的UI名为www.baidu.com,在该项目的对应爬虫文件夹下,可以发现新爬虫文件bangbing.py。
scrapy genspider -d csvfeed
可以查看csvfeed爬虫模板中的内容。
(3)Check命令
Scrapy中使用合同的方式对爬虫进行测试。
scrapy check 爬虫名
该爬虫文件的合同检查通过,显示结果为OK
(4)Crawl命令
通过命令crawl命令来启动某个爬虫,启动格式
scrapy crawl 爬虫名
例如:启动bangbing中的bangbing爬虫,启动命令结果如下。
**crawl后面跟的爬虫名而不是爬虫项目
(5)List命令
列出当前可使用的爬虫文件,必须在Scrapy项目中
(6)Edit
通过Scrapy中Edit命令,可以直接打开对应编辑器对爬虫文件进行编辑。此处在windows中执行,有问题,就不演示了,适用于linux中。
(7)Parse
可以实现获取制定的URL网址,并使用对应对的爬虫文件进行处理和分析。
scrapy parse http://www.baidu.com
scrapy parse -h
查看parse命令拥有哪些参数
参数大致分为两类:普通参数(Options)和全局参数(Global Options),此处我们只看普通参数,全局参数在上一节中介绍过了。
参数 | 含义 |
---|---|
–spider=SPIDER | 强行制定某个爬虫文件spider进行处理 |
-a NAME=VALUE | 设置spider的参数,可能会重复 |
–piplines | 通过piplines来处理items |
–nolinks | 不展示提取到的链接信息 |
–noitems | 不展示得到的items |
–nocolor | 输出结果颜色不高亮 |
–rules,-r | 使用CrawlSpider规则去处理回调函数 |
–callback=CALLBACK,-c CALLBACK | 制定spider中用于处理返回的响应的回调函数 |
–depth=DEPTH,-d DEPTH | 设置爬行深度,默认深度为1 |
–verbose,-v | 显示每层的详细信息 |
例如:想制定某个爬虫文件进行处理,可以通过上面的“–spider=SPIDER”参数实现。
`scrapy paese http://baidu.com –spider=bangbing’ –nolog