首先給出splash官網位址:http://splash.readthedocs.io/en/stable/api.html#render-html
(1)先安裝scrapy-splash庫:
(2)然後将我們的docker起起來
如果關于docker安裝還有更多的問題,請查考:
<a target="_blank" href="http://splash.readthedocs.org/en/latest/install.html">splash安裝文檔</a>
(1)将splash server的位址放在你的settings.py檔案裡面,如果是你在本地起的,那位址應該是http://127.0.0.1:8050,我的位址如下
(2)在你的下載下傳器中間件:download_middleware 裡面啟用如下的中間檔案,注意啟用的順序
另外注意:
scrapy_splash.splashmiddleware(725)的順序是在預設的httpproxymiddleware(750)之前,要不然順序的紊亂會造成功能的紊亂的
httpcompressionmiddleware的優先級和順序也應該适當的更改一下,這樣才能更能處理請求
(3)在settings.py啟用splashdeduplicateargsmiddleware中間件
(4)我們來設定一個去重的類
(5)如果你使用scrapy http 緩存系統,那你就有必要啟用這個scrapy-splash的緩存系統
如果你有在你自己的settings.py裡面啟用default_request_headers ,請務必注釋掉,目前看來是一個bug ,我已經給scrapy splash 官方提了這個bug
該bug 是由于default_request_headers 裡面的host 與我要爬的sougou不比對,這當然會出錯,不得不說scrapy的官方維護人反應真的很迅速。大家添加的headers的時候注意這些細節内容。