天天看點

scrapy 處理動态加載,使用phantomjs前言:幾種渲染js,ajax插件對比(1)建立 下載下傳中間件JavaScriptMiddleware(2)修改setting.py 檔案 ,關閉預設下載下傳器,添加新的下載下傳器中間件(3)分析

(1)selenium+webdriver(如firefox,chrome等)。這要求你系統有對應浏覽器,并且過程中要全程開浏覽器。說白了,就是你通過浏覽器能看到啥,就能抓到啥。一般遇到特别複雜的驗證碼時,這個方法是有必要的,當然,開着浏覽器爬蟲的效率可想而知。

(2)selenium+phantomjs。phantomjs是一個webkit,他的使用方法和webdriver一樣,但是他不需要開浏覽器,你可以直接跑在無需gui的linux伺服器上,這點很贊。

splash和scrapy融合,兩種互相相容彼此的特點,抓取效率較好。

與普通的scrapy項目,使用phantomjs隻需要修改兩處

關于 htmlresponse htmlrequest 可以參考http://scrapy-chs.readthedocs.io/zh_cn/0.24/topics/settings.html#topics-settings-ref  

ok ,這樣就可以了,但是由于phantomjs在下載下傳中件中,渲染網頁的同時會阻塞爬取。是以效率很低,可以參考後面的使用 scrapy-splash 來渲染頁面。