Scrapy命令行工具
Scrapy命令行工具用於控制Scrapy,它通常被稱爲「Scrapy工具」。它包括用於不同對象的參數和選項組的命令。
配置設置
scrapy 會找到 scrapy.cfg 文件中設置的配置。如下面提到的:
C:\scrapy(project folder)\scrapy.cfg 在系統中;
~/.config/scrapy.cfg ($XDG_CONFIG_HOME) and ~/.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 = [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 scrapy_project
這將創建一個名爲 project_name 的項目目錄。接下來,進入新創建的項目,使用下面的命令:
cd scrapy_project
控制項目
您可以控制項目,並通過使用Scrapy工具,也創造了新的蜘蛛(spider),使用下面的命令進行管理:
scrapy genspider mydomain yiibai.com
如:抓取等等的命令在 Scrapy 項目中的使用。這裏所有命令在接下來 Scrapy 項目內使用運行。
Scrapy包含一些內置的命令,它可以用來爲項目。要查看可用命令的列表,請使用以下命令:
scrapy -h
當運行上面的命令,Scrapy將顯示如下面所列出可用命令的列表:
fetch: 它使用Scrapy downloader 提取的 URL。
runspider: 它用於而無需創建一個項目運行自行包含蜘蛛(spider)。
settings: 它規定了項目的設定值。
shell: 這是一個給定URL的一個交互式模塊。
startproject: 它創建了一個新的 Scrapy 項目。
version: 它顯示Scrapy版本。
view: 它使用Scrapy downloader 提取 URL並顯示在瀏覽器中的內容。
一些項目相關的命令,如下:
crawl: 它是用來使用蜘蛛抓取數據;
check: 它檢查項目並由 crawl 命令返回;
list: 它顯示本項目中可用蜘蛛(spider)的列表;
edit: 可以通過編輯器編輯蜘蛛;
parse:它通過蜘蛛分析給定的URL;
bench: 它是用來快速運行基準測試(基準講述每分鐘可被Scrapy抓取的頁面數量)。
自定義項目命令
可以在Scrapy項目中通過COMMANDS_MODULE設置構建一個自定義項目命令。
COMMANDS_MODULE = 'mycmd.commands'
Scrapy命令可以通過使用 setup.py 文件中的 scrapy.commands 部分來添加,如下所示:
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 命令。