综述
Scrapy中,工具命令分为两种,全局命令和项目命令。
全局命令不需要依靠Scrapy项目就可以在全局中直接运行,而项目命令必须要在Scrapy项目中才可以运行。
全局命令
fetch命令
主要用来显示爬虫的爬取过程。
如果在Scrapy项目目录之外使用该命令,则会调用Scrapy默认的爬虫来进行网页的爬取;如果在Scrapy的某个项目目录内使用该命令,则会调用项目中的爬虫来进行网页的爬取。
查阅了一些网页,不是很清楚这个命令的作用。为什么要用这个命令显示爬虫的爬取过程?爬取获得的URL的代码输出到了哪里?输出到了屏幕吗,但是我确实发现不了可能是代码的存在。
scrapy fetch http://www.baidu.com
scrapy fetch --headers --nolog http://news.sina.com.cn/
# 后者用来显示爬虫的头信息
runspider命令
在不依托Scrapy爬虫项目的前提下,用来直接运行一个爬虫文件。
from scrapy.spider import Spider
calss FirstSpider(Spider):
name = "first"
allowed_domains = ["baidu.com"]
start_urls = ["http://www.baidu.com",]
def parse(self,response):
pass
爬虫文件的名字是”first”,爬取的起始网站的地址是”http://www.baidu .com”。
scrapy runspider first.py
settings命令
用来查看Scrapy对应的配置信息。
如果在Scrapy项目目录内使用settings命令,查看的是对应项目的配置信息;如果在Scrapy项目目录外使用该命令,查看的是Scrapy默认配置信息。
例如,想要查看莫格项目的爬虫名字,先进入该项目的目录下,然后输入命令:
scrapy settings --get BOT_NAME
shell命令
通过shell命令可以启动Scrapy的交互终端。
例如,使用该命令,为百度首页创建一个交互终端。
之后可以用XPath表达式进行信息的提取。
startproject命令
用来创建项目。
version命令
用来显示scrapy的版本信息。
scrapy version
scrapy version -v
# 后者可以用来查看其他相关环境的版本信息
view命令
下载某个网页并用浏览器查看。
scrapy view http://www.baidu.com
打开的网页是已经下载到本地的页面。
项目命令
bench命令
可以测试本地硬件的性能,量化为每秒可以爬多少个网页。
scrapy bench
genspider命令
用来快速创建Scrapy爬虫文件,这是一种快速创建爬虫文件的方式。
查看当前可用的爬虫模板:
scrapy genspider -l
使用basic模板,创建一个名为”zjh”的爬虫文件,并且定义爬取的域名为”iqianyue.com”:
scrapy genspider -t basic zjh iqianyue.com
查看某个爬虫模板的内容:
scrapy genspider -d basic
check命令
实现对某个爬虫文件的合同(契约contract)检查。
scrapy check zjh
具体不是很清楚有什么用。
crawl命令
用来启动某个爬虫。
scrapy crawl zjh --loglevel=INFO
list命令
列出当前可用的爬虫文件。
edit命令
打开爬虫文件,并对文件进行编辑。常在Linux系统中使用。
parse命令
用来获取指定的URL的网址,并使用对应的爬虫文件进行处理和分析。