Scrapy - 命令行工具
描述
Scrapy 命令行工具用于控制 Scrapy,通常称为"Scrapy 工具"。它包括用于各种对象的命令以及一组参数和选项。
配置设置
Scrapy 将在 scrapy.cfg 文件中查找配置设置。以下是几个位置 −
系统中的 C:\scrapy(项目文件夹)\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 - Deploy the configuration file project_name/ - Name of the project _init_.py items.py - It is project's items file pipelines.py - It is project's pipelines file settings.py - It is project's settings file spiders - It is the spiders directory _init_.py spider_name.py . . .
scrapy.cfg文件是项目根目录,其中包含项目名称和项目设置。例如 −
[settings] default = [项目名称].settings [deploy] #url = http://localhost:6800/ 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 − 它用于运行自包含的蜘蛛而无需创建项目。
settings − 它指定项目设置值。
shell −它是针对给定 URL 的交互式抓取模块。
startproject − 它创建一个新的 Scrapy 项目。
version − 它显示 Scrapy 版本。
view − 它使用 Scrapy 下载器获取 URL 并在浏览器中显示内容。
您可以列出一些与项目相关的命令 −
crawl − 它用于使用蜘蛛抓取数据。
check − 它检查抓取命令返回的项目。
list −它显示项目中可用的蜘蛛列表。
edit − 您可以使用编辑器编辑蜘蛛。
parse − 它使用蜘蛛解析给定的 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命令。