摘要:用例運行爬蟲命令基本語法是否需要項目存在當然是不需要咯貌似這個命令是不依托一個項目而直接運行一個爬蟲的命令。用例我終于寫完了,喜歡的就收藏推薦一下吧,這樣我就會更有動力寫新的教程了,哇哈哈
0. 基本環(huán)境說明
本文截圖及運行環(huán)境均在Win8上實現(xiàn)(是的,我放假回家了,家里的機器是win8的沒有辦法),但基本步驟與win 7環(huán)境基本相同。(應(yīng)該把~)ps:我后來換了臺win7的電腦,所以這篇文章的環(huán)境是win8和win7的結(jié)合體~,哇哈哈~,然而這并沒有什么卵用~
scrapy版本為1.0.3
這篇文章基本就是很無恥的翻譯了一下官方文檔順便添加了一點自己的理解
參考文獻以及下載鏈接:
官方1.0.3英文文檔下載
喜歡的就點推薦+收藏把~這樣我會把我知道的都寫出來的,哇哈哈~
我用的操作系統(tǒng)是64位的,但是python用的是32位的,因為32位的包比較全,但是我最近在往64位的服務(wù)器上移植,到時候有問題我會及時添加的。
1. scrapy的shell命令詳解 1.1 命令概覽首先可以通過以下命令來查看所有scrapy可用的命令類型:
scrapy -h
scrapy目前的命令可以分為項目命令和全局命令兩大類,共14種(嗯 ,我認真的數(shù)了兩遍),分布也極其對稱,項目級命令7種全局命令7種(嗯,我又認真的數(shù)了一遍)。
分別是:
全局命令
startproject
settings
runspider
shell
fetch
view
version
項目命令
crawl
check
list
edit
parse
genspider
bench
哇哈哈,然我們接著開始一一學習一下這些命令吧,有些命令好用的不要不要的哦~
1.2 全局命令解析 1.2.1 startproject 創(chuàng)建項目命令基本語法:scrapy startproject
是否需要項目存在:當然是不需要咯~
其實這個命令我們在之前的教程當中也用過了,應(yīng)該不陌生,就是在創(chuàng)建一個名為project_name的爬蟲框架,供我們調(diào)教(猥瑣臉)。是創(chuàng)建爬蟲項目開天辟地的第一步喲~。
用例
scrapy startproject njupt #嗯,我無恥的修改了官方的例子,在運行命令行的目錄下面創(chuàng)建了一個名為njupt的文件夾,里面存放了一個名為njupt的scrapy框架1.2.2 settings 查看配置文件參數(shù)命令
基本語法:scrapy settings [options]
是否需要項目存在:當然是不需要咯~(這是官方寫的,貌似有點問題)
嘛這個命令是用來查看項目參數(shù)的。官方文檔說不需要項目,經(jīng)過本人測試,如果在項目目錄下,就會顯示出項目的settings.py里面對應(yīng)的項目的內(nèi)容,如果實在項目目錄之外,貌似會返回一個scrapy的默認值,我個人建議大家在項目目錄下使用這個命令來查看settings.py里面的內(nèi)容就ok了。
用例
scrapy settings --get BOT_NAME1.2.3 runspider 運行爬蟲命令
基本語法:scrapy runspider
是否需要項目存在:當然是不需要咯~
貌似這個命令是不依托一個scrapy項目而直接運行一個爬蟲的命令。弱弱的說一句,這種沒有settings沒有pipelines的爬蟲真的好么
用例
scrapy runspider njupt.py1.2.4 shell 創(chuàng)建一個shell環(huán)境用于調(diào)試response的命令(很重要!!!)
基本語法:scrapy shell [url]
是否需要項目存在:當然是不需要咯~
這個命令真的很重要啦~,主要目的是創(chuàng)建一個shell環(huán)境用于調(diào)試response的命令(嗯,和標題一模一樣),因為她太重要了,所以我臨時決定回來專門寫一篇文章來介紹這個命令,迫不及待的同學去翻官方文檔吧~(其實我是累了,因為我一邊碼字一遍在重裝電腦而且現(xiàn)在也半夜十二點多了~說好的早睡又泡湯的)
用例:
scrapy shell http://www.njupt.edu.cn1.2.5 fetch 顯示爬取過程
基本語法:scrapy fetch [url]
是否需要項目存在:貌似有沒有都行
這個命令其實是在標準輸出中顯示調(diào)用一個爬蟲來爬取指定的url的全過程。
要注意的一點是,如果是在一個項目目錄下使用這個命令則會默認調(diào)用這個項目當中的爬蟲,如果在項目目錄之外使用這個命令,則會調(diào)用scrapy默認的爬蟲來爬取。所以有沒有項目存在都能運行。
用例:
scrapy fetch http://www.njupt.edu.cn #會顯示抓取的過程,以及抓取的html的內(nèi)容
scrapy fetch --nolog --headers http://www.njupt.edu.com/ #可以添加一些參數(shù)來,觀察各種信息,如添加個: --nolog 可以忽略很多煩人的日志 --headers 用來查看請求時的頭部信息1.2.6 view 查看頁面內(nèi)容命令
基本語法:scrapy view [url]
是否需要項目存在:無需項目存在
當你對于某些信息死也提取不出來的時候就要考慮使用一下使用這個view了,這個命令是給你下載一個頁面并用瀏覽器打開,目的是讓你對比一下scrapy"看到"的頁面和你通過瀏覽器看到的頁面有什么不同,這個對于某些動態(tài)生成的網(wǎng)頁很有作用!但是這里有個坑大家注意一下,我在Win7環(huán)境下,使用這個命令的時候在下載對應(yīng)網(wǎng)頁的同時用瀏覽器打開(目測純命令行無圖形界面的Linux因該不會自動打開瀏覽器),此時里面的ajax因為有了瀏覽器打開,又被執(zhí)行了,所以通過瀏覽器打開的頁面應(yīng)該和你正常訪問的網(wǎng)頁并無二致,但并不是真正scrapy看到的網(wǎng)頁。如何看到真正的網(wǎng)頁內(nèi)?很簡單啦,找到原始地址用sublime打開就是啦~。原始地址就在瀏覽器的地址欄里哦~
用例:
scrapy view http://item.jd.com/1319191.html #嗯,我背叛了大njupt,因為我們學校的網(wǎng)站太牛X沒有使用ajax,所以我就用大JD做例子了。1.2.7 version 顯示版本信息
基本語法:scrapy version [-v]
是否需要項目存在:無需項目存在
此命令很簡單,就是顯示scrapy的版本,如果加上-v命令則還會顯示Python, Twisted和平臺的信息,貌似對于bug尋找和報告很有幫助!
1.3 項目命令解析 1.3.1 genspider 通過模板生成爬蟲基本語法:scrapy genspider [-t template]
是否需要項目存在:項目命令嘛,果斷需要~
這個命令主要是幫助我們在編寫多個爬蟲的時候,利用現(xiàn)有爬蟲來快速生成新的爬蟲,當然這不是唯一創(chuàng)建新爬蟲的方式,騷年,不嫌累的話可以自己重新敲一個~
用例:
scrapy genspider -l
通過添加參數(shù)-l來查看現(xiàn)有的爬蟲模板
scrapy genspider -d basic
通過添加參數(shù)-d和模板名稱來查看現(xiàn)有模板的內(nèi)容,嘛如果實在linux環(huán)境下會比較好用,我等在win下面混的菜鳥還是右鍵用sublime來查看內(nèi)容吧
scrapy genspider -t basic example example.com
這就是激動人心的生成爬蟲的方式了,通過參數(shù)-t后面緊接著的內(nèi)容是模板名稱 新爬蟲的名稱 新爬蟲允許爬取的域名,貌似一般爬蟲名稱基本都是域名主體呢~,聰明的同學也知道這里新爬蟲名稱 新爬蟲允許爬取的域名分別對應(yīng)的就是之前上一篇教程提到的name和allowed_domains這兩個參數(shù)咯。
1.3.2 crawl 啟動爬蟲命令基本語法: scrapy crawl
是否需要項目存在:項目命令嘛,果斷需要~
這個命令是很激動人心的,每次寫完爬蟲就迫不及待的一試,大家在上篇教程中想必也已經(jīng)實驗過了。不過貌似一次只能跑一個爬蟲,想運行多個爬蟲怎么辦呢?我現(xiàn)在想到的兩個解決方案
1.自己寫一個bat或者shell腳本
2.自己添加一個scrapy的shell命令(沒錯,聽起來屌飛了,我會在以后的教程中告訴你怎么做的,想看的以后的教程,哼哼~,我才不會請你點推薦加收藏呢~)
用例:
scrapy crawl njupt #咩哈哈,啟動njupt爬蟲吧騷年~1.3.3 check 檢查爬蟲完整性
基本語法: scrapy check [-l]
是否需要項目存在:項目命令嘛,果斷需要~
這個命令官方寫的是Contect檢查然后就沒了,我在win7下面試了一下,能檢查出一部分錯誤,但是后面加一個-l參數(shù)貌似沒什么用啊,沒有顯示出官方文檔例子里面的spider列表和函數(shù)列表,倒是有一堆warning,我回來研究研究一下源碼看看把,這個命令目前就是檢查一些語法、import和warning等錯誤,邏輯錯誤肯定是查不出來的啦~
用例:
scrapy check njupt1.3.4 list 查看爬蟲列表命令
基本語法: scrapy list
是否需要項目存在:項目命令嘛,果斷需要~
這個命令就是查看一下這個項目里面目前有哪些爬蟲~,寫了很多的爬蟲之后打這個命令有一種閱兵的快感呢~,一般linux環(huán)境下使用較多~
用例:
scrapy list1.3.5 edit 編輯爬蟲命令
基本語法: scrapy edit
是否需要項目存在:項目命令嘛,果斷需要~
典型的在linux里面用的高大上命令啊,輸入此命令可以立刻調(diào)取settings.py中的editor指定的編輯器來打開爬蟲進行編輯(是的,settings.py里面還能配這么屌的參數(shù)我也很震驚)。順便說一句我的win7系統(tǒng)運行之后直接報錯...傷心啊
用例:
scrapy edit njupt1.3.6 parse
基本語法: scrapy parse
是否需要項目存在:項目命令嘛,果斷需要~
這方法適合測試自己寫的spider和后續(xù)各種組建如:pipeline等組合使用的情況,我一般用來測試自己編寫的spider(在沒有見過這個命令之前我一直是用crawl命令來測試的...悲劇啊)。
支持的參數(shù)倒是蠻豐富的:
--spider=SPIDER: 沒有指定spider的情況下其程序搜索,用這個選項可以強行指定某個spider
--a NAME=VALUE: 用來設(shè)定spider需要的參數(shù),可以多個
--callback或-c: 指定spider里面用于處理response的函數(shù),沒有強行制定的話,默認使用parse函數(shù)
--pipelines:用來指定后續(xù)的pipelines,可以靈活定制哦~
--rules或-r: 通過CrawlSpider設(shè)定的規(guī)則來選取對應(yīng)的函數(shù)當作解析response的回調(diào)函數(shù)
--noitems: 不顯示抓取的items
--nolinks: 不顯示提取的鏈接
--nocolour: 輸出的結(jié)果不要高亮顯示(這個選項還是不要用得好)
--depth或-d: 設(shè)置爬取深度,默認為1哦~
--verbose或-v: 顯示被爬取的每層的相關(guān)信息
用列:
scrapy parse http://www.njupt.edu.cn1.3.7 bench 硬件測試命令
基本語法: scrapy bench
是否需要項目存在:不需要
這個命令我個人理解就是對你的硬件做一個爬蟲的壓力測試,看看不考慮網(wǎng)絡(luò)的情況下你的硬件究竟能將這個爬蟲運行的多快。當然這個有點理論速度的味道,實際上你爬起來不可能這個么快。姑且算是告訴你硬件的瓶頸的方法吧。不過我win7上運行了貌似沒有什么用,沒有出現(xiàn)官方說好的各種參數(shù),回來有空還要仔細研究一下啊。
用例:
scrapy bench
我終于寫完了,喜歡的就收藏+推薦一下吧,這樣我就會更有動力寫新的教程了,哇哈哈~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37603.html
摘要:注意爬豆爬一定要加入選項,因為只要解析到網(wǎng)站的有,就會自動進行過濾處理,把處理結(jié)果分配到相應(yīng)的類別,但偏偏豆瓣里面的為空不需要分配,所以一定要關(guān)掉這個選項。 本課只針對python3環(huán)境下的Scrapy版本(即scrapy1.3+) 選取什么網(wǎng)站來爬取呢? 對于歪果人,上手練scrapy爬蟲的網(wǎng)站一般是官方練手網(wǎng)站 http://quotes.toscrape.com 我們中國人,當然...
摘要:如果想先學習的話推薦看下基礎(chǔ)教學菜鳥教程這個網(wǎng)站的教程里面的內(nèi)容還是挺不錯的非常適合小白學習好了廢話不多說開始學習如何安裝吧安裝我上篇小白爬蟲篇簡介下面的鏈接安裝包后在或者在中輸入命令過程中可能會問你是否安裝其他擴展包選按回車就好了安裝完成 如果想先學習python的話推薦看下Python基礎(chǔ)教學|菜鳥教程這個網(wǎng)站的教程,里面的內(nèi)容還是挺不錯的非常適合小白學習好了廢話不多說開始學習如何...
摘要:如果安裝了,終端將使用替代標準終端。終端與其他相比更為強大,提供智能的自動補全,高亮輸出,及其他特性。也提供了一些快捷方式例如或同樣可以生效如之前的案例。當然作用不僅僅如此,但是不屬于我們課程重點,不做詳細介紹。 Scrapy Shell Scrapy終端是一個交互終端,我們可以在未啟動spider的情況下嘗試及調(diào)試代碼,也可以用來測試XPath或CSS表達式,查看他們的工作方式,方便...
摘要:用于下載網(wǎng)頁內(nèi)容,并將網(wǎng)頁內(nèi)容返回給。中間件位于引擎和下載器之間的鉤子框架,主要是處理引擎與下載器之間的請求及響應(yīng)。包含了在啟動時進行爬取的列表。對象經(jīng)過調(diào)度,執(zhí)行生成對象并送回給方法一般返回實例。 Scrapy 是什么 Scrapy 是一個為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。 可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。其最初是為了頁面抓取 (更確切...
安裝scrapy 不同操作系統(tǒng)安裝操作不同,可以直接看官方文檔Install Scrapy 創(chuàng)建一個項目 在命令行輸入 scrapy startproject tutorial 進入項目目錄創(chuàng)建一個spider cd tutorial scrapy genspider quotes domain.com import scrapy class QuotesSpider(scrapy.Spider...
閱讀 3398·2023-04-25 22:04
閱讀 2197·2021-11-22 15:29
閱讀 2161·2021-10-11 10:57
閱讀 1402·2021-09-24 09:48
閱讀 3147·2021-09-09 09:34
閱讀 2543·2021-09-02 15:21
閱讀 2393·2019-08-30 15:53
閱讀 1120·2019-08-30 14:07