關於Scrapy爬蟲專案執行和除錯的小技巧(下篇)

2022-02-08 08:35:12 字數 1535 閱讀 5252

前幾天給大家分享了關於scrapy爬蟲專案執行和除錯的小技巧上篇,沒來得及上車的小夥伴可以戳超連結看一下。今天小編繼續沿著上篇的思路往下延伸,給大家分享更為實用的scrapy專案除錯技巧。

三、設定**robots.txt規則為false

一般的,我們在運用scrapy框架抓取資料之前,需要提前到settings.py檔案中,將「robotstxt_obey = true」改為robotstxt_obey = false。

在未改動之後settings.py檔案中預設爬蟲是遵守**的robots.txt規則的,如下圖所示。

如果遵守robots.txt規則的話,那麼爬取的結果會自動過濾掉很多我們想要的目標資訊,因此有必要將該引數設定為false,如下圖所示。

設定好robots.txt規則之後,我們便可以抓到更多網頁的資訊。

四、利用scrapy shell進行除錯

通常我們要執行scrapy爬蟲程式的時候會在命令列中輸入「scrapy crawl crawler_name」,細心的小夥伴應該知道上篇文章中建立的main.py檔案也是可以提高除錯效率的,不過這兩種方法都是需要從頭到尾執行scrapy爬蟲專案,每次都需要請求一次url,效率十分低。執行過scrapy爬蟲專案的小夥伴都知道scrapy執行的時候相對較慢,有時候因為網速不穩定,根部就無法動彈。針對每次都需要執行scrapy爬蟲的問題,這裡介紹scrapy shell除錯方法給大家,可以事半功倍噢。

scrapy給我們提供了一種shell模式,讓我們可以在shell指令碼之下獲取整個url對應的網頁原始碼。在命令列中進行執行,其語法命令是「scrapy shell url」,url是指你需要抓取的網頁**或者鏈結,如下圖所示。

該命令代表的意思是對該url進行除錯,當命令執行之後,我們就已經獲取到了該url所對應的網頁內容,之後我們就可以在該shell下進行除錯,再也不用每次都執行scrapy爬蟲程式,發起url請求了。

通過shell指令碼這種方式可以極大的提高除錯的效率,具體的除錯方法同爬蟲主體檔案中的表示式語法一致。舉個栗子,如下圖所示。

將兩個xpath表示式所對應的選擇器放到scrapy shell除錯的指令碼下,我們可以很清楚的看到提取的目標資訊,而且省去了每次執行scrapy爬蟲程式的重複步驟,提高了開發效率。這種方式在scrapy爬蟲過程中十分常用,而且也十分的實用,希望小夥伴們都可以掌握,並且積極主動的為自己所用。

關於scrapy爬蟲專案執行和除錯的部分小技巧先分享到這裡,尤其是debug除錯和scrapy shell除錯極為常用,希望小夥伴們可以多多利用起來,讓其為自己的專案服務,可以事半功倍噢~~

關於Scrapy爬蟲專案執行和除錯的小技巧(上篇)

掃除執行scrapy爬蟲程式的bug之後,現在便可以開始進行編寫爬蟲邏輯了。在正式開始爬蟲編寫之前,在這裡介紹四種小技巧,可以方便我們操縱和除錯爬蟲。一 建立main.py檔案,直接在pycharm下進行除錯 很多時候我們在使用scrapy爬蟲框架的時候,如果想執行scrapy爬蟲專案的話,一般都會...

scrapy 執行同個專案多個爬蟲

一開始我們預設都是只有乙個爬蟲的,所以執行的 都是在專案下建立乙個py檔案 from scrapy import cmdline cmdline.execute scrapy crawl 爬蟲名 split 但是要執行多個爬蟲就犯難了,在這裡我只是做個筆記加強記憶 原部落格 其中執行以下 1 在sp...

Scrapy 執行多個爬蟲

本文所使用的 scrapy 版本 scrapy 1.8.0 多個爬蟲 所有爬蟲 顯然,這兩種情況並不一定是等同的。假設當前專案下有 3 個爬蟲,分別名為 route dining experience,並在專案目錄下建立乙個main.py檔案,下面的示例 都寫在這個檔案中,專案執行時,在命令列下執行...