scrapy框架優(yōu)缺點 有什么好的python3爬蟲入門教程或書籍嗎?
有什么好的python3爬蟲入門教程或書籍嗎?Scrapy tutorial()是一個用Python編寫的快速開源的網(wǎng)絡(luò)爬蟲框架,用于在基于XPath的選擇器的幫助下從網(wǎng)頁中提取數(shù)據(jù)。Scrapy于2
有什么好的python3爬蟲入門教程或書籍嗎?
Scrapy tutorial()是一個用Python編寫的快速開源的網(wǎng)絡(luò)爬蟲框架,用于在基于XPath的選擇器的幫助下從網(wǎng)頁中提取數(shù)據(jù)。
Scrapy于2008年6月26日在BSD下首次發(fā)布,milestone 1.0于2015年6月發(fā)布。
為什么是Scrapy?
更容易構(gòu)建和擴展大型爬行項目。
它有一個稱為選擇器的內(nèi)置機制,可以從網(wǎng)站中提取數(shù)據(jù)。
它異步處理請求,速度非???。
它采用自動調(diào)節(jié)機制,自動調(diào)節(jié)爬網(wǎng)速度。
確保開發(fā)者的可訪問性。
搔癢癥的特征
Scrapy是一個開源的免費網(wǎng)絡(luò)爬蟲框架。
Scrapy生成JSON、CSV和XML格式的Feed輸出。
Scrapy內(nèi)置了通過XPath或CSS表達式從數(shù)據(jù)源中選擇和提取數(shù)據(jù)的支持。
基于爬蟲的Scrapy允許從網(wǎng)頁中自動提取數(shù)據(jù)。
優(yōu)勢
Scrapy易于擴展,速度快,功能強大。
它是一個跨平臺的應(yīng)用框架(Windows、Linux、Mac OS和BSD)。
Scrapy請求是異步調(diào)度和處理的。
Scrapy自帶一個名為Scrapyd的內(nèi)置服務(wù),允許你上傳項目,使用JSON Web服務(wù)控制蜘蛛。
雖然網(wǎng)站沒有訪問原始數(shù)據(jù)的API,但是你可以取消任何網(wǎng)站。
劣勢
Scrapy僅在Python 2.7中可用。
不同的操作系統(tǒng)安裝不同。
有python感受嗎,請問像攜程網(wǎng)這種網(wǎng)站怎么爬取?
清理了運行Scrapy爬蟲的bug后,現(xiàn)在可以開始寫爬蟲邏輯了。在正式開始爬蟲編寫之前,這里有四個小技巧可以幫助我們操縱和調(diào)試爬蟲。
首先,直接在Pycharm下創(chuàng)建文件并調(diào)試。
很多時候,當(dāng)我們使用Scrapy crawler框架時,如果我們想運行Scrapy crawler項目,我們通常會想到直接執(zhí)行命令 "scrapy爬行爬蟲名稱 "在命令行中,其中crawler_name是指爬蟲的名稱,是當(dāng)初創(chuàng)建Scrapy爬蟲模板時指定的,在爬蟲項目中是唯一的。但是每次跑到命令行執(zhí)行,看到交互的結(jié)果,有時候不是很清楚,所以這里有一個方法,可以幫助你提高開發(fā)效率,尤其是在調(diào)試的時候。
在與爬蟲項目文件相同的目錄下創(chuàng)建一個文件,用來控制整個爬蟲項目的執(zhí)行。
寫在這個文件夾中的代碼如下所示。scrapy中嵌入了execute函數(shù),調(diào)用該函數(shù)可以直接調(diào)用Scrapy項目的抓取。蠕蟲腳本,該功能的執(zhí)行需要在爬蟲項目的父目錄下進行。第七行代碼的意思是獲取當(dāng)前py文件的父目錄,這樣可以節(jié)省我們直接復(fù)制路徑的精力和時間,也方便我們把項目放到其他平臺上運行而不會報錯路徑。執(zhí)行函數(shù)中的參數(shù)實際上了Scrapy crawler 的執(zhí)行命令,并將它們以一個字符的形式放入一個數(shù)組中。
之后我們可以直接運行這個文件,調(diào)用Scrapy爬蟲。
第二,用Debug來調(diào)試,提高開發(fā)速度。
相信用過Pycharm的朋友都看過Debug,意思是 "bug "用英語。Pycharm里的logo也是bug,像瓢蟲,但是很多朋友可能沒用過。下面給大家簡單介紹一下。希望你以后能多使用,這對項目的調(diào)試很有幫助。
在調(diào)試之前,我們需要打斷我們要調(diào)試的代碼左側(cè)的點。斷點一般是紅色的,斷點的很簡單,只需點擊代碼左側(cè)的左鍵即可,如下圖所示。
設(shè)置斷點后,可以轉(zhuǎn)到文件進行調(diào)試。右鍵單擊文件并選擇 "調(diào)試和測試。;主 ",如下圖所示。
之后爬蟲會開始調(diào)試并返回一系列結(jié)果,如下圖所示,可以方便的拖拽查看。同時,爬蟲的結(jié)果會在爬蟲文件中以綠色字體顯示,非常美觀。
如果您想退出或停止調(diào)試,單擊Pycharm上面的選項卡上的Run,然后單擊Stop 主 ,如下圖所示。
之后爬蟲會退出調(diào)試,恢復(fù)正常的Pycharm界面,如下圖所示。
第三,將網(wǎng)站robots.txt規(guī)則設(shè)置為False。
一般來說,在我們使用Scrapy框架來捕獲數(shù)據(jù)之前,我們需要提前進入文件并修改 "服從真實 "to robots txt _ observe False。
未更改文件中的默認(rèn)爬蟲遵循網(wǎng)站的robots.txt規(guī)則,如下圖所示。
如果按照robots.txt的規(guī)則,抓取結(jié)果會自動過濾掉很多我們想要的目標(biāo)信息,所以需要將這個參數(shù)設(shè)置為False,如下圖所示。
設(shè)置了robots.txt的規(guī)則后,我們就可以捕捉到更多的網(wǎng)頁信息了。
4.用Scrapy shell調(diào)試
通常,當(dāng)我們想運行Scrapy爬蟲程序時,我們會輸入 "scrapy爬行爬蟲名稱 "在命令行中。細(xì)心的朋友應(yīng)該知道,上一篇文章創(chuàng)建的文件也可以提高調(diào)試效率,但是這兩種方法。所有方法都需要從頭到尾運行Scrapy爬蟲項目,每次都需要請求一個URL,效率非常低。所有運行過Scrapy爬蟲項目的朋友都知道Scrapy運行相對較慢,有時根可以 因為網(wǎng)速不穩(wěn)定而無法移動。針對每次運行Scrapy爬蟲的問題,為大家介紹Scrapy shell的調(diào)試方法,可以事半功倍。
Scrapy為我們提供了一個shell模式,可以讓我們在shell腳本下獲取整個URL的源代碼。在命令行上運行它,它的語法命令是 "scrapy外殼URL ",而URL是指你需要抓取的網(wǎng)址或鏈接,如下圖所示。
這個命令意味著調(diào)試URL。命令執(zhí)行后,我們已經(jīng)獲取了URL對應(yīng)的網(wǎng)頁內(nèi)容,然后就可以在shell下調(diào)試了,所以我們不 不要每次啟動URL請求都執(zhí)行無用的爬蟲。
通過shell腳本可以大大提高調(diào)試的效率,具體調(diào)試方法與爬蟲主文件中的表達式語法一致。舉個栗子,如下圖。
通過將兩個Xpath表達式對應(yīng)的選擇器放入scrapy shell調(diào)試的腳本中,可以清晰的看到提取的目標(biāo)信息,省去了每次運行scrapy爬蟲的重復(fù)步驟,提高了開發(fā)效率。這種方法在Scrapy爬蟲的過程中很常見,也很實用。希望各位朋友都能掌握,并積極為自己所用。
讓 s先在這里分享一些Scrapy爬蟲項目的操作和調(diào)試技巧,尤其是調(diào)試和Scrapy shell調(diào)試。希望朋友們多多利用,讓他們?yōu)樽约旱捻椖糠?wù),可以事半功倍~
原始鏈接:
原始鏈接: