国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python3學習之Splash的安裝與實例教程

2020-02-15 22:18:56
字體:
來源:轉載
供稿:網友

前言

Splash是一個javascript渲染服務。它是一個帶有HTTP API的輕量級Web瀏覽器,使用Twisted和QT5在Python 3中實現。QT反應器用于使服務完全異步,允許通過QT主循環利用webkit并發。

一些Splash功能:

并行處理多個網頁 獲取HTML源代碼或截取屏幕截圖 關閉圖像或使用Adblock Plus規則使渲染更快 在頁面上下文中執行自定義JavaScript 可通過Lua腳本來控制頁面的渲染過程 在Splash-Jupyter 筆記本中開發Splash Lua腳本。 以HAR格式獲取詳細的渲染信息

1、Scrapy-Splash的安裝

Scrapy-Splash的安裝分為兩部分,一個是Splash服務的安裝,具體通過Docker來安裝服務,運行服務會啟動一個Splash服務,通過它的接口來實現JavaScript頁面的加載;另外一個是Scrapy-Splash的Python庫的安裝,安裝后就可在Scrapy中使用Splash服務了,下面我們分三部份來安裝:

(1)安裝Docker

#安裝所需要的包:yum install -y yum-utils device-mapper-persistent-data lvm2#設置穩定存儲庫:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#開始安裝DOCKER CE:yum install docker-ce#啟動dockers:systemctl start docker#測試安裝是否正確:docker run hello-world

(2)安裝splash服務

通過Docker安裝Scrapinghub/splash鏡像,然后啟動容器,創建splash服務

docker pull scrapinghub/splashdocker run -d -p 8050:8050 scrapinghub/splash#通過瀏覽器訪問8050端口驗證安裝是否成功

(3)Python包Scrapy-Splash安裝

pip3 install scrapy-splash

2、Splash Lua腳本

運行splash服務后,通過web頁面訪問服務的8050端口如:http://localhost:8050即可看到其web頁面,如下圖:

上面有個輸入框,默認是http://google.com,我們可以換成想要渲染的網頁如:https://www.baidu.com然后點擊Render me按鈕開始渲染,頁面返回結果包括渲染截圖、HAR加載統計數據、網頁源代碼:

從HAR中可以看到,Splash執行了整個頁面的渲染過程,包括CSS、JavaScript的加載等,通過返回結果可以看到它分別對應搜索框下面的腳本文件中return部分的三個返回值,html、png、har:

function main(splash, args) assert(splash:go(args.url)) assert(splash:wait(0.5)) return { html = splash:html(), png = splash:png(), har = splash:har(), }end

這個腳本是使用Lua語言寫的,它首先使用go()方法加載頁面,wait()方法等待加載時間,然后返回源碼、截圖和HAR信息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍林郭勒市| 沂南县| 宕昌县| 台江县| 金华市| 承德市| 历史| 云霄县| 秦安县| 澄江县| 巴彦淖尔市| 双辽市| 南乐县| 鞍山市| 龙海市| 台山市| 华安县| 吴桥县| 平凉市| 喜德县| 绿春县| 尤溪县| 东城区| 波密县| 莲花县| 卓尼县| 大同市| 赤峰市| 靖江市| 神农架林区| 海原县| 玛多县| 黄龙县| 梅州市| 太和县| 新乐市| 金寨县| 太保市| 普兰县| 开平市| 富顺县|