Scrapy是通过scrapy 命令行工具进行控制的。 这里我们称之为 Scrapy tool以用来和子命令进行区分。 对于子命令,我们称为 “command” 或者 “Scrapy commands”。

1.配置设置

Scrapy将会在以下路径中寻找记录了配置参数的 scrapy.cfg 文件, 该文件以ini的方式记录:

从这些文件中读取到的设置按照以下顺序合并:项目中scrapy.cfg > ~/.scrapy.cfg > /etc/scrapy.cfg

2.默认的scrapy项目结构

/
|--scrapy.cfg
|--myproject/
     |--__init__.py
     |--items.py
     |--pipelines.py
     |--settings.py
     |--spiders/
         |--__init__.py
         |--spider1.py
         |--spider2.py

scrapy.cfg 存放的目录被认为是 项目的根目录 。该文件中包含python模块名的字段定义了项目的设置。例如:

[settings]
default = myproject.settings

3.工具命令

scrapy提供了可用的内置命令的列表。您可用通过运行命令来获取每个命令的详细内容。

# 单个命令详情
scrapy <command> -h

#查看所有可用的命令
scrapy -h

Scrapy提供了两种类型的命令。一种必须在Scrapy项目中运行(针对项目(Project-specific)的命令),另外一种则不需要(全局命令)。全局命令在项目中运行时的表现可能会与在非项目中运行有些许差别(因为可能会使用项目的设定)。

全局命令

命令描述语法是否需要项目例子
startproject在文件夹下创建一个名为project_name的scrapy项目scrapy startproject <project_name>scrapy startproject myproject
settings在项目中运行时,该命令将会输出项目的设定值,否则输出Scrapy默认设定scrapy settings [options]scrapy settings –get BOT_NAME
scrapybot
scrapy settings –get DOWNLOAD_DELAY
0
runspider在未创建项目的情况下,运行一个编写在Python文件中的spiderscrapy runspider <spider_file.py>scrapy runspider myspider.py
shell启动Scrapy终端scrapy shell [url]scrapy shell http://www.example.com/some/page.html
fetch使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出scrapy fetch <url>scrapy fetch –nolog http://www.example.com/some/page.html
view在浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同。 因此该命令可以用来检查spider所获取到的页面,并确认这是您所期望的scrapy view <url>scrapy view http://www.example.com/some/page.html
version输出Scrapy版本。配合-v运行时,该命令同时输出Python,Twisted 以及平台的信息,方便bug提交scrapy version [-v] 

项目(project)命令

命令描述语法是否需要项目例子
crawl使用spider进行爬取scrapy crawl <spider>scrapy crawl myspider
check运行contract检查scrapy check [-l] <spider>scrapy check -l
scrapy check
list列出当前项目中所有可用的spider。每行输出一个spiderscrapy listscrapy list
edit使用 EDITOR 中设定的编辑器编辑给定的spiderscrapy edit <spider>scrapy edit spider1
parse获取给定的URL并使用相应的spider分析处理。如果您提供 --callback 选项,则使用spider的该方法处理,否则使用 parsescrapy parse <url> [options]scrapy parse http://www.example.com/ -c parse_item
genspider在当前项目中创建spiderscrapy genspider [-t template] <name> <domain>scrapy genspider -l
scrapy genspider -d basic
bench运行benchmark测试scrapy bench 

parse选项

选项描述
--spider=SPIDER跳过自动检测spider并强制使用特定的spider
--a NAME=VALUE设置spider的参数(可能被重复
--callback or -cspider中用于解析返回(response)的回调函数
--pipelines在pipeline中处理item
--rules or -r使用 CrawlSpider 规则来发现用来解析返回(response)的回调函数
--noitems不显示爬取到的item
--nolinks不显示提取到的链接
--nocolour避免使用pygments对输出着色
--depth or -d指定跟进链接请求的层次数
--verbose or -v显示每个请求的详细信息

Scrapy 1.7

Scrapy 安装并创建运行爬虫项目(1) Scrapy 命令行工具(2) Scrapy 选择器(3) Scrapy Item(4) Scrapy Item Loaders(5) Scrapy Item Pipeline(6) Scrapy Feed exports(7) Scrapy 架构概览(8) Scrapy 手写一个爬虫(9) Scrapy 知乎模拟登陆 (10) Scrapy源码分析 架构概览(1) Scrapy源码分析 运行入口(2) Scrapy源码分析 核心组件初始化(3) Scrapy源码分析 核心抓取流程(4)