Scrapy 简明教程
Scrapy - Command Line Tools
Configuration Settings
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
Default Structure Scrapy Project
以下结构展示了 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 = [name of the project].settings
[deploy]
#url = http://localhost:6800/
project = [name of the project]
Using Scrapy Tool
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
Creating a Project
您可以使用以下命令在 Scrapy 中创建项目 −
scrapy startproject project_name
这会创建名为 project_name 的项目目录。然后,使用以下命令转到新创建的项目 −
cd project_name
Controlling Projects
您可以使用 Scrapy 工具控制项目和管理它们,还可以使用以下命令创建新的爬虫 −
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 每分钟可以爬取多少页面)。
Custom Project Commands
您可以使用 COMMANDS_MODULE 在 Scrapy 项目中设置自定义项目命令。它在设置中包含一个默认的空字符串。您可以添加以下自定义命令−
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 命令。