1. 程式人生 > >scrapy多個爬蟲公用一些中間件、pipelines

scrapy多個爬蟲公用一些中間件、pipelines

scrapy python

使用python3

請求頭headers:user-agent、代理ip,這些放在一個工程項目裏,有的爬蟲是需要中間件的或者根據反爬添加相應的條件,那這樣的情況下怎麽辦?

1.中間件處理默認帶上請求頭,不帶啟用ip代理功能

spiders文件夾下的爬蟲類添加屬性技術分享圖片


中間件處理技術分享圖片

這樣不管爬蟲那邊有沒有添加屬性,middlewares裏就是會默認技術分享圖片

2.有些情況下請求頭會帶上cookie、referer,這樣的話,只需要user_agent = False,這樣在爬蟲裏面編寫自己需要的headers



那麽多的爬蟲,每一個可能數據格式、存數據庫不同,怎麽區分它們呢?

1.在items裏面做文章

每一個爬蟲的數據可能都要創建items類,我們把公用的部分提出來,寫到基類裏面去!

2.根據items判斷pipelines入庫

一定是items項目類,不能使用基類!

技術分享圖片

3.或者根據文件的文件名、類名、方法,判斷啟用那個,這種適合很多類型的情況下

建個文件夾,技術分享圖片

==>>>技術分享圖片


然後在改一些相應的源碼,這裏不詳細說明!


scrapy多個爬蟲公用一些中間件、pipelines