Scrapy,Scrapy命令行工具用于控制Scrapy,它通常被称为Scrapy工具。它包括各种对象的命令,有一组参数和选项.
配置参数设置
Scrapy会在scrapy.cfg文件中找到配置设置。以下是几个位置 −
- C:\scrapy(project folder)\scrapy.cfg在系统中。
- ~/.config/scrapy.cfg(XDG_CONFIG_HOME)和~/.scrapy.cfg(HOME)用于全局设置
- 你可以在项目的根里面查找scrapy.cfg
Scrapy也可以使用以下环境变量进行配置 −
- SCRAPY_SETTINGS_MODULE
- SCRAPY_PROJECT
- SCRAPY_PYTHON_SHELL
默认结构Scrapy项目
下面的结构显示了Scrapy项目的默认文件结构.
scrapy.cfg - 部署配置文件
project_name/ - 项目名称
_init_.py
items.py - 这是项目的项目文件
pipelines.py - 这是项目的管道文件
settings.py - 这是项目的设置文件
spiders - 它是Spiders目录
_init_.py
spider_name.py
. . .
scrapy.cfg文件是一个项目根目录,它包括项目名称与项目设置。比如说 −
[settings]
default = [name of the project].settings
[deploy]
#url = http://localhost:6800/
project = [name of the project]
使用Scrapy工具
Scrapy工具提供了一些用法和可用的命令,如下所示 −
Scrapy X.Y - no active project
Usage:
scrapy [options] [arguments]
Available commands:
crawl It puts spider (handle the URL) to work for crawling data
fetch It fetches the response from the given URL
创建一个项目
你可以使用以下命令在Scrapy中创建项目 −
scrapy startproject project_name
这将创建名为project_name目录的项目。接下来,进入新创建的项目,使用以下命令 −
cd project_name
管理项目
你可以使用Scrapy工具控制项目和管理它们,也可以使用以下命令创建新的Spider −
scrapy genspider mydomain mydomain.com
诸如crawl等命令必须在Scrapy项目中使用。在接下来的章节中,你会知道哪些命令必须在Scrapy项目中运行.
Scrapy包含一些内置的命令,可以用于你的项目。要查看可用的命令列表,请使用以下命令 −
scrapy -h
当你运行下面的命令时,Scrapy将显示可用的命令列表,如表所示 −
- fetch − 它使用Scrapy下载器来获取URL.
- runspider − 它用于运行独立的Spider,而无需创建一个项目.
- settings − 它指定了项目设置值.
- shell − 它是一个针对给定URL的交互式搜刮模块.
- startproject − 它创建了一个新的Scrapy项目.
- version − 它显示的是Scrapy版本.
- view − 它使用Scrapy下载器获取URL并在浏览器中显示内容.
你可以有一些与项目有关的命令,如所列 −
- crawl − 它用于使用Spider来抓取数据.
- check − 它检查由抓取的命令返回的项目.
- list − 它显示项目中存在的可用Spiders的列表.
- edit − 你可以通过使用编辑器来编辑Spiders.
- parse − 它用Spider解析给定的URL.
- bench − 它用于运行快速基准测试 (基准告诉我们Scrapy每分钟可以抓取多少个页面).
自定义项目命令
你可以在Scrapy项目中用COMMANDS_MODULE设置建立一个自定义项目命令。它在设置中包括一个默认的空字符串。你可以添加以下自定义命令 −
COMMANDS_MODULE = 'mycmd.commands'
可以使用setup.py文件中的scrapy.commands部分来添加Scrapy命令,如下所示 −
from setuptools import setup, find_packages
setup(name = 'scrapy-module_demo',
entry_points = {
'scrapy.commands': [
'cmd_demo = my_module.commands:CmdDemo',
],
},
)
上述代码在setup.py文件中添加了cmd_demo命令.