美文网首页程序员
flash中lua语法的使用

flash中lua语法的使用

作者: 豌豆_e34f | 来源:发表于2018-11-05 21:40 被阅读0次

lua语法的使用

如果返回的是字典形式的数据可以用lxml解析

在创建的爬虫文件中

import scrapy,os
from ..items import Hero
from scrapy_splash import SplashRequest

SplashRequest(专门用来生成给予Splash加载的网络请求)

语法解释

定义一段lua脚本控制页面行为

set_viewport_size(w, h):用来设置浏览器的尺寸,w代表宽度,h代表高度

go(url, baseurl, headers, http_method, body, formdata):完成指定页面的加载

url:需要加载的页面的网址

baseurl:可选参数,默认为空,表示资源加载的相对路径

headers:可选参数,默认为空,用来设置请求的header

body:可选参数,默认为空,发送POST请求时间服务器传输的参数数据

formdata:可选参数,默认为空,POST的时候对应的表单数据,默认使用form表单默认的编码格式即application/x-www-form-urlencode

wait():用来等待网页的加载,对应的时间以秒为单位

time:等待网页加载的时间

cancle_on_redirect:可选参数,默认为false,用来设置当网页发生重定向时是否结束等待

cancle_on_error:可选参数,默认为false,用来设置当网页发生错误时是否结束等待

html():将加载之后的网站以html格式返回

jpeg():将加载之后的网站截屏并且以jpg格式返回

jsfunc():将自定义的JavaScript方法转化成lua方法,但是自定义方法必须包含在[[]]中

autoload():完成第三方资源远程链接加载

script1 = """
    function main(splash, args)
        splash:set_viewport_size(1200, 2500)
        splash.images_enabled = false
        splash:autoload('https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js')
        splash:go(args.url)
        splash:wait(args.wait)
        click_fun = splash:jsfunc([[
            function(){
                 $('label[data-id="Tank"]').click();   
            }
        ]])
        click_fun()
        splash:wait(args.wait)
        return splash:png()
    end
"""
def start_requests(self):
    for url in self.start_urls:
        # endpoint:设置splash渲染的方式,默认是render,html:即直接返回js渲染之后的网页,如果页面需要进行额外的js操作时,此时需要使用execute,execute可以保证js和lua脚本实现无缝融合
        #args:用来设置未来向lua脚本中传递的参数,默认有一个url,该url在未设置时指向发送请求的url,wait:页面加载过程中等待的时间,单位为秒
        yield SplashRequest(url=url, callback=self.parse, endpoint='execute', args={'lua_source': script1,'wait':3})

相关文章

  • flash中lua语法的使用

    lua语法的使用 如果返回的是字典形式的数据可以用lxml解析 在创建的爬虫文件中 SplashRequest(专...

  • lua进阶

    lua官网在线运行代码 table面向对象语法糖 lua对table中的函数调用做了优化,使用起来像类方法,增加了...

  • Lua语言笔记(为热更新做铺垫)

    [前言:很多基本的语法之类的在笔记中没有提及,需要在看之前了解一下lua基本语法] -- ======lua简单知...

  • Lua面向对象编程

    在lua原生语法特性中是不具备面向对象设计的特性。因此,要想在lua上像其他高级语言一样使用面向对象的设计方法有以...

  • Lua_for循环语句

    lua中的各种for循环语句:在Lua中for语句跟其他语言的for类似,语法上有一点点区别。Lua的for语句有...

  • Nodejs中connect-flash模块的调用

    connect-flash模块的使用 connect-flash简介 connect-flash是nodejs中的...

  • 【IOS开发高级系列】Lua与OC交互专题

    1 Lua语法 Lua教程 http://www.yiibai.com/lua/lua_environment.h...

  • Lua

    让Xcode 支持 Lua 语法高亮 1.让Xcode支援Lua语法高亮(Syntax Highlighting)...

  • 【Cocos2D + Lua】ClippingNode制作动画

    今天熟悉了Lua的语法,同时学习了Cocos中ClippingNode的使用,这个节点通常是用来做动画的,示例如下...

  • Lua 完全教程

    Lua 环境安装 Lua 基本语法 Lua 数据类型 Lua 数据类型:nil(空) Lua 数据类型:boole...

网友评论

    本文标题:flash中lua语法的使用

    本文链接:https://www.haomeiwen.com/subject/bfpexqtx.html