jsfunc()
此方法可以直接调用JavaScript定义的方法 方法必须用双中括号包围
function main(splash, args)
local get_div=splash:jsfunc([[
function(){
var body=document.body;
var divs=body.getElementsByTagName('div');
return divs.length;
}
]])
splash:go("https://baidu.com")
return ("there are %s divs"):format(get_div())
end
evaljs()
此方法可以执行JavaScript代码并返回最后一条JavaScript语句的返回结果
获取页面表里
local aaa=splash:evaljs("document.title")
runjs()
此方法与evaljs()的功能类似 但更偏向于执行某些动作或声明某些方法
splash:runjs("test=function(){return 'aaa'}")
local aaa=splash:evaljs("test")
return aaa
autoload()
设置每个页面访问时自动加载的对象
ok, reason=splash:autoload{source_or_url,source=nil,url=nil}
source_or_url:js代码或者JS库链接
source:js代码
url:JS库链接
call_later()
通过设置定时任务和延迟时间来实现任务延时执行,并且可以在执行前通过cancel()方法从新执行定义时间
http_get() ,http_post()
模拟发送get和post请求
set_content()
用来设置页面内容`
function main(splash)
assert(splash:set_content("<html><body><p>set_content</p></body></html>"))
return splash:png()
end
html(),png(),har(),jpeg()
html()获取网页源代码
png()获取png格式的截图
jpeg()获取jpeg格式的截图
har()获取页面加载过程
function main(splash)
assert(splash:go("http://www.taobao.com"))
return {
html = splash:html(),
png = splash:png(),
har = splash:har(),
}
end
url()
获取正在访问的url
get_cookies()
获取当前页面的cookies
add_cookies()
为当前页面添加cookies()
clear_cookies()
清除所有的cookies
get_viewport_size()
获取当前浏览器页面宽高
set_viewport_size()
设置当前浏览器页面宽高
splash:set_viewport_size(220,700)
set_viewport_full()
设置浏览器全屏显示
set_user_agent()
设置浏览器的User-Agent
set_custom_headers()
设置浏览器的请求头
select()
选中符合条件的第一个元素
function main(splash)
assert(splash:go("https://www.baidu.com"))
input=splash:select("#kw")
input:send_text('Splash')
splash:wait(2)
return {
html = splash:html(),
png = splash:png(),
har = splash:har(),
}
select_all()
选中符合条件的所有元素
mouse_click()
模拟鼠标的点击事件 传入的参数是XY轴
function main(splash)
assert(splash:go("https://www.baidu.com"))
input=splash:select("#kw")
input:send_text('百度翻译')
bb=splash:select("#su")
bb:mouse_click()
splash:wait(1)
return {
html = splash:html(),
png = splash:png(),
har = splash:har(),
}
end