Scrapy中的splash的安装应用
因為要去抓取部分經(jīng)過JavaScript渲染的網(wǎng)頁數(shù)據(jù),所以使用scrapy中的Request返回的是沒有經(jīng)過渲染的網(wǎng)頁代碼,
因此我們就要運用Scrapy中的 splash 中的?SplashRequest 來進(jìn)行操作。
首先我們要使用安裝scrapy-splash:
1、利用pip 安裝 scrapy-splash
pip install scrapy-splash
2、安裝docker
安裝docker比較繁瑣,首先要去官網(wǎng)下載docker工具 由于又是Windows7版本 所以下載的是DockerToolbox, 然后手動安裝即可。
然后安裝過程中,會出現(xiàn)如下情況:(該圖是網(wǎng)上找的)
這種時候就要去GitHub里面下載boot2docker-18.03.0-ce文件并放到黃色線條路徑處(每個人的路徑可能不同),
紅色箭頭是下載地址??https://github.com/boot2docker/boot2docker/releases/tag/v18.03.0-ce?,
然后將下載到的文件放到指定地址后 等待運行(時間較長)
安裝好之后 運行?Docker Quickstart Terminal,
然后輸入? docker pull scrapinghub/splash
然后在輸入??docker run -p 8050:8050 scrapinghub/splash
這樣便開啟了 docker 。
然后就可以開始運用 python中的 scrapy-splash 中的?SplashRequest
3、設(shè)定python中的 setting文件
SPLASH_URL = 'http://192.168.99.100:8050' #(很重要寫錯了會出目標(biāo)電腦積極拒絕)
添加Splash中間件,指定優(yōu)先級:
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
?
設(shè)置Splash自己的去重過濾器 :
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
緩存后臺存儲介質(zhì):
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage' # 以上兩條必加
?
4、運用SplashRequest:
這個運用方面 有一個需要特別注意 就是:
?yield SplashRequest(url=news_url,?callback=self.down_load,args={"wait": 3})
?上面是使用 splashrequest的一個例子,其中一定要添加args={"wait": 3}? ?這一個標(biāo)識延遲多久以后再將網(wǎng)頁信息傳送過來。
posted on 2018-10-26 16:46 痘疤臉 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/chenansen/p/9857307.html
總結(jié)
以上是生活随笔為你收集整理的Scrapy中的splash的安装应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用开水烫蟑螂真的有用吗?
- 下一篇: BX-B954155000是比亚迪的哪款