Script

本章介绍脚本的基本使用。脚本使用json格式定义,在各种语言中,你都可以很方便将它反序列化。

转换方式

import crawlipt as cpt

# 在编写阶段可以使用python内置字典类型进行编写
script = { 
    "method": "redirect",
    "url": "https://www.baidu.com/",
    "next": {
        "method": "input",  # 方法名
        "xpath": "//*[@id=\"kw\"]", # 方法对应参数
        "text": "百度贴吧", # 方法对应参数
        "next": { # 下一个要执行的脚本
            "method": "click",
            "xpath": "//*[@id=\"su\"]"
        }
    }
}
# 转换为了一个json字符串,可以将它存储在物理介质中
script_json = cpt.Script.generate_json(script) 

执行脚本

脚本可以映射所有的action方法

脚本初始化参数介绍

参数名
类型
介绍

script

dict | str | list

预先编写好的脚本

global_script

dict | str | list = None

全局执行脚本,这个脚本将在每次执行任意一个action方法前进行执行。例如:有的网站会随机弹出广告,影响下面脚本的执行,定义该脚本可以在执行action方法前判断是否有广告,如果有的话去进行一系列操作关闭广告

interval

float = 0.5

每两次action方法执行的间隔

wait

float = 10

如果action方法中含有xpath或css参数,则会自动隐式等待wait秒,直到对应元素在dom结构中出现

is_need_syntax_check

bool = True

是否需要执行前严格的脚本语法检查,如果关闭会增加执行时的错误概率

脚本执行器参数介绍

参数名
类型
介绍

WebDriver

selenium的webdriver对象,需要根据情况自行配置

VariableBase | None = None

本次执行的变量值

StoreBase | None = None

本次执行的存储器

通过列表step方式编写脚本

通过字典类型进行编写脚本,在action多的情况下,可能会导致嵌套字典过深,维护困难。使用列表方式编写脚本可以将嵌套流程变为串行流程。

最后更新于