Splash jsfunc() 方法】的更多相关文章

jsfunc()方法可以直接调用 JavaScript 定义的方法,但是所调用的方法需要用双中括号包围,这相当于实现了 JavaScript 方法到 Lua 脚本的转换 function main(splash, args) local get_div_count = splash:jsfunc([[ # 直接调用JavaScript定义方法,用于统计div的数量,并将结果赋值给变量 function() { var body = document.body; var divs = body.g…
autoload() 方法可以设置每个页面访问时自动加载的对象,比如自动加载 JavaScript 代码,自动加载 Ajax 代码等等 注意此方法只负责加载 JavaScript/Ajax 代码,不执行任何操作.如果要执行操作,可以调用 evaljs() 或 runjs() 方法 function main(splash, args) splash:autoload([[ function get_document_title(){ return document.title; } ]]) sp…
runjs() 方法可以执行 JavaScript 代码,它与 evaljs() 功能类似,但是更偏向于执行某些动作或声明某些方法 function main(splash, args) splash:go("https://www.baidu.com/") splash:runjs("foo = function() { return 'bar' }") # 使用runjs()执行JavaScript代码 local result = splash:evaljs(…
evaljs() 方法可以执行 JavaScript 代码并返回最后一条 JavaScript 语句的返回结果 function main(splash, args) splash:go("http://www.baidu.com")local title = splash:evaljs("document.title") # 执行JavaScript代码,将执行结果赋值给title变量 return title # 返回title变量的值,结果是一个字符串:&qu…
wait()方法用于控制页面的等待时间,如下,实现访问淘宝并等待2秒,随后返回淘宝页面的源代码: function main(splash) splash:go("https://www.taobao.com/") splash:wait() return {html=splash:html()} end…
go()方法用来请求某个链接,而且它可以模拟 GET 和 POST 请求,同时支持传入请求头.表单等数据 function main(splash) ok, reason = splash:go("http://www.baidu.com") # 默认使用GET请求,返回结果是结果和原因的组合,如果ok为空,则reason变量中会包含错误的原因 ok, reason = splash:go("http://www.baidu.com", baseurl=nil, h…
go() wait() jsfunc() evaljs() runjs() autoload() call_later() http_get() http_post() set_content() html() png() jpeg() har() url() get_cookies() add_cookies() get_viewport_size() set_viewport_size() set_viewport_full() set_user_agent() set_custom_hea…
scrapy splash 用来爬取动态网页,其效果和scrapy selenium phantomjs一样,都是通过渲染js得到动态网页然后实现网页解析, selenium + phantomjs 是用selenium的webdriver操作浏览器,然后用phantomjs执行渲染脚本得到结果,一般再用beautifulSoup进行处理. splash是官方推荐的js渲染引擎,和scrapy结合比较好,使用的是webkit开发的轻量级无界面浏览器,渲染之后结果和静态爬取一样,可以直接用xpat…
Splash是一个javascript渲染服务.它是一个带有HTTP API的轻量级Web浏览器,使用Twisted和QT5在Python 3中实现.QT反应器用于使服务完全异步,允许通过QT主循环利用webkit并发.一些Splash功能: 并行处理多个网页 获取HTML源代码或截取屏幕截图 关闭图像或使用Adblock Plus规则使渲染更快 在页面上下文中执行自定义JavaScript 可通过Lua脚本来控制页面的渲染过程 在Splash-Jupyter 笔记本中开发Splash Lua脚…
Splash Lua脚本http://localhost:8050 入口及返回值 function main(splash, args) splash:go("http://www.baidu.com") splash:wait(0.5) local title = splash:evaljs("document.title") return {title=title} end 通过 evaljs()方法传人 JavaSer刷脚本, 而 document.title…