天天看点

16Python爬虫---Scrapy常用命令

常用命令

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/

结果显示:

16Python爬虫---Scrapy常用命令

如果fetch命令在Scrapy项目中使用则会调用项目内的爬虫进行网页爬取,否则将使用Scrapy默认的爬虫进行网页的爬取。

scrapy fetch --headers --nolog http://news.sina.com.cn/

参数 作用
–headers 参数控制显示对应的爬虫爬取网页时候的头信息
–nolog 参数来控制不显示日志信息
–spider=SPIDER 参数来控制使用哪个爬虫
–logfile=FILE 参数来制定存储日志信息的文件
– loglevel=LEVEL 参数控制日志等级

结果:

16Python爬虫---Scrapy常用命令

(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

结果:

16Python爬虫---Scrapy常用命令

可以看到runspider可以不依靠scrapy项目的情况下完成该爬虫文件的运行。

(3)settings命令

通过settings命令可以查看scrapy项目配置或者在项目外查看scrapy默认的配置。

16Python爬虫---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)

16Python爬虫---Scrapy常用命令

(5)startproject命令

创建Scrapy项目

(6)version命令

通过version命令,可以直接显示Scrapy的版本相关信息。

16Python爬虫---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

16Python爬虫---Scrapy常用命令

测试结果每分钟大约能爬2820个网页。这只是一个参考标准,在实际运行爬虫项目,会忧郁各种因素导致速度不同。一般来说,可以根据实际运行的速度与该参考速度进行对比结果,从而对爬虫项目进行优化和改进。

(2)Genspider

使用genspider命令来创建Scrapy爬虫文件,这是一种快速创建爬虫文件的方式。

scrapy genspider -l

该命令的-l参数来查看当前可以使用的爬虫模板,当前可使用的爬虫模板有basic、crawl、csvfeed、xmlfeed

16Python爬虫---Scrapy常用命令

可以基于其中的任意一个爬虫模板来生成一个爬虫文件。

scrapy genspider t 模板新爬虫名新爬虫爬取的域名

例如:

scrapy genspider -t basic bangbing www.baidu.com

16Python爬虫---Scrapy常用命令

执行后,成功基于basic爬虫模板创建了一个新的爬虫文件bangbing,定义爬取的UI名为www.baidu.com,在该项目的对应爬虫文件夹下,可以发现新爬虫文件bangbing.py。

16Python爬虫---Scrapy常用命令

scrapy genspider -d csvfeed

可以查看csvfeed爬虫模板中的内容。

16Python爬虫---Scrapy常用命令
16Python爬虫---Scrapy常用命令

(3)Check命令

Scrapy中使用合同的方式对爬虫进行测试。

scrapy check 爬虫名

16Python爬虫---Scrapy常用命令

该爬虫文件的合同检查通过,显示结果为OK

(4)Crawl命令

通过命令crawl命令来启动某个爬虫,启动格式

scrapy crawl 爬虫名

例如:启动bangbing中的bangbing爬虫,启动命令结果如下。

16Python爬虫---Scrapy常用命令

**crawl后面跟的爬虫名而不是爬虫项目

(5)List命令

列出当前可使用的爬虫文件,必须在Scrapy项目中

16Python爬虫---Scrapy常用命令

(6)Edit

通过Scrapy中Edit命令,可以直接打开对应编辑器对爬虫文件进行编辑。此处在windows中执行,有问题,就不演示了,适用于linux中。

(7)Parse

可以实现获取制定的URL网址,并使用对应对的爬虫文件进行处理和分析。

scrapy parse http://www.baidu.com

16Python爬虫---Scrapy常用命令

scrapy parse -h

查看parse命令拥有哪些参数

16Python爬虫---Scrapy常用命令

参数大致分为两类:普通参数(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

16Python爬虫---Scrapy常用命令