詳解Scrapy的命令行工具

接觸過Scrapy的人都知道,咱們不少操做是須要藉助命令行來執行的,好比建立項目,運行爬蟲等。因此瞭解和掌握這些命令對於scrapy的學習是頗有幫助的!html

Scrapy 命令

      首先,在scrapy命令中分爲兩種,一個就是全局命令和項目命令,什麼意思呢?簡單粗暴的說就是有些命令你能夠在你電腦任何地方用,有些命令只能在你本身的項目裏面用。python

    下面給你們先看看全部的命令:shell

Global commands(全局命令):vim

  • startproject
  • genspider
  • settings
  • runspider
  • shell
  • fetch
  • view
  • version

 

Project-only commands(項目命令):瀏覽器

  • crawl
  • check
  • list
  • edit
  • parse
  • bench

我們一個一個來吧!dom

1. startprojectscrapy

語法ide

scrapy startproject <project_name> [project_dir]

含義:建立一個新的Scrapy項目,名稱爲 project_name ,在project_dir目錄下,若是目錄不存在,那麼目錄就會變成項目名。性能

使用案例學習

$ scrapy startproject myproject

2. genspider

語法

scrapy genspider [-t template] <name> <domain>

含義:新建一個爬蟲在當前文件夾或者在當前項目的爬蟲文件夾中,若是是在一個項目當中,這個<name>參數將被當成爬蟲的名字,然而<domain>將會被用來建立爬蟲裏面的 allowed_domains 和start_urls的屬性值

使用案例

$ scrapy genspider -l       Available templates:四種模板  basic  crawl  csvfeed  xmlfeed
$ scrapy genspider example example.com建立example爬蟲,而且默認使用basic模板
$ scrapy genspider -t crawl scrapyorg scrapy.org建立scrapyorg模板,而且使用crawl模板

3.crawl

語法

scrapy crawl <spider>

含義:運行爬蟲

使用案例

$ scrapy crawl myspider

4. check

語法

scrapy check [-l] <spider>

含義:運行contract檢查,檢查你項目中的錯誤之處。

使用案例

$ scrapy check -lfirst_spider  * parse  * parse_itemsecond_spider  * parse  * parse_item
$ scrapy check[FAILED] first_spider:parse_item>>> 'RetailPricex' field is missing
[FAILED] first_spider:parse>>> Returned 92 requests, expected 0..4

5. list

語法scrapy list

含義:列舉出當前項目的爬蟲

使用案例

$ scrapy listspider1spider2 

6. edit

語法scrapy edit <spider>

含義:編輯爬蟲代碼,實際上就是vim模式,可是這種方式並不怎麼好用,還不如用IDE去寫爬蟲。

使用案例

$ scrapy edit spider1

7. fetch

語法scrapy fetch <url>

含義:使用Scrapy下載器下載指定的URL,並將得到的內容輸出,通俗的來講就是打印出網站的HTML源碼。

使用實例:

$ scrapy fetch --nolog http://www.example.com/some/page.html[ ... html content here ... ]

8.view

語法scrapy view <url>

含義:在你的默認瀏覽器中打開給定的URL,並以Scrapy spider獲取到的形式展示。 有些時候spider獲取到的頁面和普通用戶看到的並不相同,一些動態加載的內容是看不到的, 所以該命令能夠用來檢查spider所獲取到的頁面。

使用案例

$ scrapy view http://www.example.com/some/page.html[ ... browser starts ... ]

9.shell

語法scrapy shell [url]

含義:啓動Scrapy Shell 來打開url,能夠進行一些測試

使用案例

$ scrapy shell http://www.baidu.com[ ... scrapy shell starts ... ]

10. parse

語法scrapy parse <url> [options]

含義:輸出格式化內容

Supported options:

  • --spider=SPIDER: 自動檢測爬蟲、強制使用特定爬蟲

  • --a NAME=VALUE: 設置爬蟲的參數(可重複)

  • --callback or -c: 用做解析響應的回調的爬蟲方法

  • --meta or -m: 傳遞給回調請求的附加請求元。必須是有效的JSON字符串。示例:–meta='「foo」:「bar」

  • --pipelines: 經過管道處理項目

  • --rules or -r: 使用crawlspider規則發現用於解析響應的回調(即spider方法)

  • --noitems: 不顯示items

  • --nolinks: 不顯示提取的連接

  • --nocolour: 避免使用Pygments對輸出着色

  • --depth or -d: 遞歸執行請求的深度級別(默認值:1)

  • --verbose or -v: 顯示每一個深度級別的信息

使用案例

$ scrapy parse http://www.example.com/ -c parse_item[ ... scrapy log lines crawling example.com spider ... ]
>>> STATUS DEPTH LEVEL 1 <<<# Scraped Items  ------------------------------------------------------------[{'name': 'Example item', 'category': 'Furniture', 'length': '12 cm'}]
# Requests  -----------------------------------------------------------------[]

11.settings

語法scrapy settings [options]

含義:拿到Scrapy裏面的設置屬性

使用案例

$ scrapy settings --get BOT_NAMEscrapybot$ scrapy settings --get DOWNLOAD_DELAY0

12.runspider

語法scrapy runspider <spider_file.py>

含義:運行一個含有爬蟲的python文件,不須要是一個scrapy項目

使用案例

$ scrapy runspider myspider.py[ ... spider starts crawling ... ]

13.version

語法scrapy version [-v]

含義:查看Scrapy版本

使用案例

scrapy versionScrapy 1.6.0

14.bench

語法:scrapy bench

 含義:測試電腦當前爬取速度性能

相關文章
相關標籤/搜索