日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Splash 渲染引擎简介

發(fā)布時間:2024/10/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Splash 渲染引擎简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Splash文檔地址:http://splash.readthedocs.io/en/latest/api.html
Splash渲染引擎有以下功能
1.為用戶返回經(jīng)過渲染的HTML頁面或頁面截圖
2.并發(fā)渲染多個頁面
3.關(guān)閉圖片加載,加速渲染
4.在頁面中執(zhí)行用戶自定義的JS腳本代碼
5.執(zhí)行用戶自定義的渲染腳本(lua)

Splash有多個服務(wù)端點
1.render.html端點

  • 請求地址 http://localhost/render.html
  • 請求方式 GET/POST
  • 返回類型 html
  • 參數(shù)描述
    url需要渲染頁面的url
    timeout渲染頁面超時時間
    proxy代理服務(wù)器地址
    wait等待頁面渲染的時間
    image是否下載圖片,默認(rèn)為1
    js_sourse用戶自定義的JS代碼,在渲染頁面前執(zhí)行

    示例代碼

    import requests from scrapy.selector import Selector splash_url='http://localhost:8050/render.html' args={'url':'http://quotes.toscrape.com/js','timeout':5,'image':0} response=requests.get(splash_url,params=args) sel=Selector(response) sel.css('div.quote span.text').extract() print(sel)

    2.execute端點
    再爬取頁面的時候,可能需要和頁面進行交互,比如下拉等操作,這個時候就可以用execute端點來執(zhí)行一些用戶自定義的js代碼

    參數(shù)描述
    lua_source用戶自定義的lua腳本
    timeout渲染頁面超時時間
    proxy代理服務(wù)器地址

    我們可以將execute端點的服務(wù)看作一個可用lua編程的瀏覽器。使用時需要傳遞一個用戶自定義的lua腳本給Splash,該lua腳本包含想要模擬的瀏覽器行為,例如
    *打開某個頁面
    *等待頁面加載渲染
    *執(zhí)行JS代碼
    *獲取HTTP響應(yīng)頭部
    *獲取cookie

    示例代碼

    import requests lua_script=" function main()splash:go('http://example.com') #打開頁面splash:wait(0.5) #等待加載local title=splash:evaljs('document.title') #執(zhí)行js代碼獲取結(jié)果return {title=title} #返回json形式的結(jié)果 " splash_url='http://localhost:8050/execute' headers={'content-type':'application/json'} data=json.dumps({'lua_source':lua_script}) response=requests.get(splash_url,headers=heaers,data=data) print(response.content)

    splash對象常用的屬性和方法
    1.splash.args屬性:用戶傳入?yún)?shù)的表,可以訪問用戶傳入的參數(shù),如splash.args.wait
    2.splash.js_enabled屬性:用于開啟/禁止JS渲染,默認(rèn)為開啟
    3.splash.images_enabled屬性:開啟/關(guān)閉圖片加載,默認(rèn)為開啟
    4.splash:go方法:例如splash:go{url,baseurl=nil,headers=nil,http_method=‘GET’,body=nil,formdata=nil}
    5.splash:wait方法:等待頁面渲染
    6.splash:evaljs方法:執(zhí)行一段js代碼,并返回最后一句表達式的值
    7.splash:runjs:運行JS代碼,不返回值
    8.splash:url
    9.splash:html
    10.splash:get——cookies():獲取cookie信息

    轉(zhuǎn)載于:https://www.cnblogs.com/yfc0818/p/11072686.html

    總結(jié)

    以上是生活随笔為你收集整理的Splash 渲染引擎简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。