scrapy命令行工具

通過這篇文章屠阻,我們會了解scrapy的命令行工具郁岩。

文章介紹命令行工具的順序基本就是按照官方文檔的順序來铡恕。

命令

scrapy的命令分為全局命令和項目內(nèi)命令煮嫌。全局命令也就是不需要在項目所在目錄下運行,項目內(nèi)命令必須在生成項目后碗暗,在此目錄下運行的命令颈将。舉個栗子,startproject就是全局命令言疗,因為在運行這個命令的時候還沒有項目晴圾,check就是項目內(nèi)命令,因為必須有項目才能檢查代碼正確與否噪奄。

Global commands:

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

Project-only commands:

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

創(chuàng)建項目

命令:

scrapy startproject testproject

這個命令用于生成我們所需要的爬蟲項目死姚。進(jìn)入到該目錄中,會發(fā)現(xiàn)生成了許多文件梗醇。這些文件的用法在以后都會一一詳解知允。

生成spider

命令:

scrapy genspider baidu www.baidu.com

輸入該命令會在spiders文件夾下生成一個名為 baidu.py 的文件,cat這個文件叙谨,我們會發(fā)現(xiàn)其實就是最基本的spider模板温鸽。

模板選擇

在終端輸入命令可以查看生成模板的類型:

scrapy genspider -l

輸出:

Available templates:
  basic
  crawl
  csvfeed
  xmlfeed

也就是系統(tǒng)自帶這四種模板,如果沒有指定模板手负,會選擇basic基本模板涤垫。如果你問我可以自定義模板嗎,當(dāng)然可以了竟终,不過本文暫時不涉及這個問題蝠猬,如果有需要可以先自行g(shù)oogle。

使用模板命令:

scrapy genspider -t xmlfeed zhihu www.zhihu.com

-t就是TEMPLATE统捶,也就是模板榆芦。

例子:

$ scrapy genspider -l
Available templates:
  basic
  crawl
  csvfeed
  xmlfeed

$ scrapy genspider example example.com
Created spider 'example' using template 'basic'

$ scrapy genspider -t crawl scrapyorg scrapy.org
Created spider 'scrapyorg' using template 'crawl'

crawl

用于運行指定spider

命令:

scrapy crawl baidu

check

check用來檢查項目中的代碼是否有錯誤。如果沒錯會返回ok喘鸟,如果有錯會定位錯誤代碼的位置匆绣。

命令:

scrapy check

示例:

?  testproject scrapy check

----------------------------------------------------------------------
Ran 0 contracts in 0.000s

OK

list

運行命令會列出項目中所有的spider。

命令:

scrapy list

示例什黑,在我們創(chuàng)建的項目目錄下運行:

?  testproject scrapy list
baidu
zhihu

shell

運行這個命令會進(jìn)入命令行交互模式崎淳,以給定的 URL(如果給出)或者空(沒有給出 URL)啟動 Scrapy shell。查看 Scrapy 終端(Scrapy shell)可以做一些簡單的操作愕把,可以使用選擇器快速獲取信息拣凹,方便調(diào)試森爽。

fetch

使用這個命令會執(zhí)行一次請求,并調(diào)用scrapy的下載器嚣镜,返回網(wǎng)頁的源碼爬迟。

命令:

scrapy fetch http://www.baidu.com

還可以加三個參數(shù):

--nolog
--headers
--no-redirect

分別是不輸出日志信息,返回網(wǎng)頁的請求頭和禁止重定向祈惶。如果網(wǎng)頁沒有重定向的話返回的還是原網(wǎng)頁雕旨。

view

命令:

scrapy view http://www.taobao.com

這個命令比較有用扮匠,它的作用是請求網(wǎng)址捧请,輸出網(wǎng)址的源碼,并將該網(wǎng)頁保存成一個文件棒搜,使用瀏覽器打開疹蛉。如果打開的網(wǎng)址和你正常加載的網(wǎng)頁有所不同,一般情況下沒顯示的部分使用了異步加載力麸。因此該命令可以用來檢查 spider 所獲取到的頁面,并確認(rèn)這是您所期望的可款。

這樣在你以后的抓取過程中就可以使用這個命令分析網(wǎng)頁是否使用了異步加載。

runspider

這個命令和crawl命令的區(qū)別在于crawl命令后是spider的name克蚂,而runspider命令后加的是爬蟲的文件名闺鲸,在本文的項目中,使用crawl命令:

scrapy crawl baidu

使用runspider就是:

scrapy runspider baidu.py

settings

用來獲取項目的配置信息埃叭。

例如獲取項目名稱:

?  testproject scrapy settings --get BOT_NAME
testproject

edit

如果你不使用vim作為編輯器的話摸恍,這個命令不常用,因為這個命令會調(diào)用vim來編輯文件赤屋。

命令:

scrapy edit baidu

如果你想學(xué)習(xí)這個編輯器的話立镶,這有三篇入門文章可以供你參考:

1.vim快捷用法
2.對vim的簡單配置
3.安裝YouCompleteMe插件-Python版

parse

獲取給定的 URL 并使用相應(yīng)的 spider 分析處理。如果您提供 --callback 選項,則使用 spider 的該方法處理,否則使用 parse

使用上一篇的例子:

scrapy parse http://quotes.toscrape.com -c parse

支持的操作:

--spider = SPIDER:
bypass spider autodetection and force use of specific spider
跳過自動檢測 spider 并強(qiáng)制使用特定的 spider

--a NAME = VALUE:
set spider argument (may be repeated)
設(shè)置 spider 的參數(shù)(可能被重復(fù))

--callback or -c:
spider method to use as callback for parsing the response
spider 中用于解析返回(response)的回調(diào)函數(shù)

--pipelines:
process items through pipelines
在 pipeline 中處理 item

--rules or -r:
use CrawlSpider rules to discover the callback (i.e. spider method) to use for parsing the response
使用 CrawlSpider 規(guī)則來發(fā)現(xiàn)用來解析返回(response)的回調(diào)函數(shù)

--noitems:
don’t show scraped items
不顯示爬取到的 item

--nolinks:
don’t show extracted links
不顯示提取到的鏈接

--nocolour:
avoid using pygments to colorize the output
避免使用 pygments 對輸出著色

--depth or -d:
depth level for which the requests should be followed recursively (default: 1)
指定跟進(jìn)鏈接請求的層次數(shù)(默認(rèn):1)

--verbose or -v:
display information for each depth level
顯示每個請求的詳細(xì)信息

bench

這個命令會運行 benchmark 測試类早,模擬測試scrapy的爬取速度媚媒。

version

這個命令可以查詢當(dāng)前scrapy的版本,和一些依賴庫版本信息涩僻。

示例:

?  ~ scrapy version
Scrapy 1.3.3

?  ~ scrapy version -v
Scrapy    : 1.3.3
lxml      : 3.7.3.0
libxml2   : 2.9.3
cssselect : 1.0.1
parsel    : 1.1.0
w3lib     : 1.17.0
Twisted   : 17.1.0
Python    : 3.5.2 (default, Nov 17 2016, 17:05:23) - [GCC 5.4.0 20160609]
pyOpenSSL : 17.0.0 (OpenSSL 1.0.2g  1 Mar 2016)
Platform  : Linux-4.4.0-81-generic-x86_64-with-Ubuntu-16.04-xenial
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缭召,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子逆日,更是在濱河造成了極大的恐慌嵌巷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屏富,死亡現(xiàn)場離奇詭異晴竞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狠半,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門噩死,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颤难,“玉大人,你說我怎么就攤上這事已维⌒朽停” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵垛耳,是天一觀的道長栅屏。 經(jīng)常有香客問我,道長堂鲜,這世上最難降的妖魔是什么栈雳? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮缔莲,結(jié)果婚禮上哥纫,老公的妹妹穿的比我還像新娘。我一直安慰自己痴奏,他們只是感情好蛀骇,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著读拆,像睡著了一般擅憔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上檐晕,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天暑诸,我揣著相機(jī)與錄音,去河邊找鬼棉姐。 笑死屠列,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伞矩。 我是一名探鬼主播笛洛,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乃坤!你這毒婦竟也來了苛让?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤湿诊,失蹤者是張志新(化名)和其女友劉穎狱杰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厅须,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡仿畸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片错沽。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡簿晓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出千埃,到底是詐尸還是另有隱情憔儿,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布放可,位于F島的核電站谒臼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏耀里。R本人自食惡果不足惜蜈缤,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望备韧。 院中可真熱鬧劫樟,春花似錦、人聲如沸织堂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽易阳。三九已至,卻和暖如春吃粒,著一層夾襖步出監(jiān)牢的瞬間潦俺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工徐勃, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留事示,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓僻肖,卻偏偏與公主長得像肖爵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子臀脏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容