今天就跟大家聊聊有關(guān)Scrapy爬蟲項(xiàng)目運(yùn)行和調(diào)試的小技巧是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)右江免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
關(guān)于Scrapy爬蟲項(xiàng)目運(yùn)行和調(diào)試的小技巧
設(shè)置網(wǎng)站robots.txt規(guī)則為False
一般的,我們在運(yùn)用Scrapy框架抓取數(shù)據(jù)之前,需要提前到settings.py文件中,將“ROBOTSTXT_OBEY = True”改為ROBOTSTXT_OBEY = False。
在未改動之后settings.py文件中默認(rèn)爬蟲是遵守網(wǎng)站的robots.txt規(guī)則的,如下圖所示。
如果遵守robots.txt規(guī)則的話,那么爬取的結(jié)果會自動過濾掉很多我們想要的目標(biāo)信息,因此有必要將該參數(shù)設(shè)置為False,如下圖所示。
設(shè)置好robots.txt規(guī)則之后,我們便可以抓到更多網(wǎng)頁的信息。
利用Scrapy shell進(jìn)行調(diào)試
通常我們要運(yùn)行Scrapy爬蟲程序的時(shí)候會在命令行中輸入“scrapy crawl crawler_name”,細(xì)心的小伙伴應(yīng)該知道上篇文章中創(chuàng)建的main.py文件也是可以提高調(diào)試效率的,不過這兩種方法都是需要從頭到尾運(yùn)行Scrapy爬蟲項(xiàng)目,每次都需要請求一次URL,效率十分低。運(yùn)行過Scrapy爬蟲項(xiàng)目的小伙伴都知道Scrapy運(yùn)行的時(shí)候相對較慢,有時(shí)候因?yàn)榫W(wǎng)速不穩(wěn)定,根部就無法動彈。針對每次都需要運(yùn)行Scrapy爬蟲的問題,這里介紹Scrapy shell調(diào)試方法給大家,可以事半功倍噢。
Scrapy給我們提供了一種shell模式,讓我們可以在shell腳本之下獲取整個(gè)URL對應(yīng)的網(wǎng)頁源碼。在命令行中進(jìn)行運(yùn)行,其語法命令是“scrapy shell URL”,URL是指你需要抓取的網(wǎng)頁網(wǎng)址或者鏈接,如下圖所示。
該命令代表的意思是對該URL進(jìn)行調(diào)試,當(dāng)命令執(zhí)行之后,我們就已經(jīng)獲取到了該URL所對應(yīng)的網(wǎng)頁內(nèi)容,之后我們就可以在該shell下進(jìn)行調(diào)試,再也不用每次都執(zhí)行Scrapy爬蟲程序,發(fā)起URL請求了。
通過shell腳本這種方式可以極大的提高調(diào)試的效率,具體的調(diào)試方法同爬蟲主體文件中的表達(dá)式語法一致。舉個(gè)栗子,如下圖所示。
將兩個(gè)Xpath表達(dá)式所對應(yīng)的選擇器放到scrapy shell調(diào)試的腳本下,我們可以很清楚的看到提取的目標(biāo)信息,而且省去了每次運(yùn)行Scrapy爬蟲程序的重復(fù)步驟,提高了開發(fā)效率。這種方式在Scrapy爬蟲過程中十分常用,而且也十分的實(shí)用,希望小伙伴們都可以掌握,并且積極主動的為自己所用。
看完上述內(nèi)容,你們對Scrapy爬蟲項(xiàng)目運(yùn)行和調(diào)試的小技巧是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。