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                - 部署配置文件
project_name/             - 项目的名称
   _init_.py
   items.py               
   pipelines.py          
   settings.py           
   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工具提供了一些用法和可用命令如下

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  commands
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
    ......

scrapy 命令

创建项目

我们可以使用以下命令在 Scrapy 中创建项目

$ scrapy startproject project_name

这将创建名为 project_name 的项目目录。 接下来,转到新创建的项目,使用以下命令

$ cd  project_name

控制项目

我们可以使用 Scrapy 工具控制项目并管理它们,还可以使用以下命令创建新的蜘蛛

$ scrapy genspider mydomain mydomain.com

craw 等命令必须在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 命令。

查看笔记

扫码一下
查看教程更方便