加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Splash Lua 脚本

发布时间:2020-12-14 21:50:14 所属栏目:大数据 来源:网络整理
导读:Splash 可以通过 Lua 脚本执行一系列渲染操作,这样我们就可以用 Splash 来模拟浏览器的操作了,Splash Lua 基础语法如下: function main(splash,args) # main()方法是入口,名称必须固定的,Splash默认调用这个方法 splash:go( " http://www.baidu.com " )

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读