Splash Lua 腳本


Splash 可以通過 Lua 腳本執行一系列渲染操作,這樣我們就可以用 Splash 來模擬瀏覽器的操作了,Splash Lua 基礎語法如下:

function main(splash, args)                        # main()方法是入口,名稱必須固定的,Splash默認調用這個方法
  splash:go("http://www.baidu.com")                # go()方法用於加載頁面
  splash:wait(0.5)                                 # wait()方法用於等待指定的時間
  local title = splash:evaljs("document.title")    # evaljs()方法用於傳入並執行JavaScript腳本,這里將執行結果賦值給title變量
  return title                                     # 返回title變量的值,結果是一個字符串:"百度一下,你就知道"
 end                                               # 也可以以字典的形式返回,如 return {title=title} ,則結果為:title: "百度一下,你就知道"

Splash 也支持異步處理:

在腳本內調用的 wait() 方法類似於 Python 中的 sleep(),其參數為等待的秒數。當 Splash 執行到此方法時,它會轉而去處理其他任務,然后在指定的時間過后再回來繼續處理。

function main(splash, args)
  local example_urls = {"www.baidu.com", "www.hao123.com", "www.zhihu.com"}
  local urls = args.urls or example_urls
  local results = {}
  for index, url in ipairs(urls) do
    local ok, reason = splash:go("http://" .. url)
    if ok then
      splash:wait(2)
      results[url] = splash:png()
    end
  end
  return results
end

 

 

 

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM