Scrapy – 命令行工具

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命令.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程