接觸過Scrapy的人都知道,咱們不少操做是須要藉助命令行來執行的,好比建立項目,運行爬蟲等。因此瞭解和掌握這些命令對於scrapy的學習是頗有幫助的!html
首先,在scrapy命令中分爲兩種,一個就是全局命令和項目命令,什麼意思呢?簡單粗暴的說就是有些命令你能夠在你電腦任何地方用,有些命令只能在你本身的項目裏面用。python
下面給你們先看看全部的命令:shell
Global commands(全局命令):vim
startproject
genspider
Project-only commands(項目命令):瀏覽器
我們一個一個來吧!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
含義:測試電腦當前爬取速度性能