xbot.web
概述
web接口主要是针对web网页的操作(Chrome网页、影刀内置浏览器网页),如打开网页、获取网页、激活网页、关闭网页等,同时还支持对网页上传/下载对话框的处理
详情
create
打开网页并返回网页对象
create(url, mode='cef', * , load_timeout=20)
参数
- url:目标网址
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- load_timeout:等待加载超时时间,默认超时时间20s,如果网页超时未加载完成则抛出UIAError异常
- stop_if_timeout:网页加载超时时是否停止加载网页,默认是 False 不停止加载
arguments:命令行参数,必须是目标浏览器支持的命令行,可为空。 返回值
WebBrowser:返回打开的网页对象
示例1
使用Chrome浏览器打开 百度
from xbot import web
def main(args):
web_object = web.create('www.baidu.com', 'chrome', load_timeout=20)
get
根据网址或标题获取网页,默认模糊匹配,如果use_wildcard为True则使用通配符方式匹配 若匹配到多个网页,返回最新打开的网页
get(title=None, url=None, mode='cef', * , load_timeout=20, use_wildcard=False)
参数
- title:标题
- url:网址
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- load_timeout:等待加载超时时间,默认超时时间20s,如果网页超时未加载完成则抛出UIAError异常
- use_wildcard:是否使用通配符方式匹配,默认为False
返回值
- WebBrowser:返回获取到的网页对象
示例1
使用模糊匹配在Chrome浏览器中查找标题开头为 百度 的网页对象
from xbot import web
def main(args):
web_object = web.get('百度', None, 'chrome', load_timeout=20, use_wildcard=False)
示例2
使用通配符在Chrome浏览器中查找标题开头为 百度 的网页对象
from xbot import web
def main(args):
web_object = web.get('百度*', None, 'chrome', load_timeout=20, use_wildcard=True)
get_active
获取当前选中或激活的网页
get_active(mode='cef', * , load_timeout=20)
参数
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- load_timeout:等待加载超时时间, 默认超时时间20s, 如果网页超时未加载完成则抛出UIAError异常
返回值
- WebBrowser:返回获取到的网页对象
示例1
获取Chrome浏览器当前激活的网页对象
from xbot import web
def main(args):
web_object = web.get_active('chrome', load_timeout=20)
get_all
获取所有网页
get_all(mode='cef')
参数
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
返回值
- List[WebBrowser]:返回网页对象列表
实列1
获取Chrome浏览器当前打开的全部网页对象
from xbot import web
def main(args):
web_objects = web.get_all('chrome')
get_cookies
获取浏览器Cookie信息
get_cookies(mode='cef', * , url=None, name=None, domain=None, path=None)
参数
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- url:根据是否与给定的 URL比如 'https://www.winrobot360.com'匹配, 筛选浏览器cookie(值为空则忽略 url筛选条件)
- name:根据是否与给定的 name匹配, 筛选cookie(值为空则忽略 name筛选条件)
- domain:根据是否完全与给定的 domain比如 '.winrobot360.com'匹配, 或是否是其的子域名, 筛选cookie(浏览器类型为IE或值为空则忽略 domain筛选条件)
- path:根据是否与给定的path比如 '/', 筛选cookie(浏览器类型为IE或值为空则忽略 path筛选条件)
返回值
- list[dict]:返回筛选到的cookie列表, 列表项键包括'domain'、'expirationDate'、'name'、'value'、'httpOnly'..., 集合中的值可以通过比如 item['value'] 的方式获取
示例1
获取chrome浏览器的cookie信息
from xbot import web
def main(args):
get_explorer_cookie('cef')
# get_explorer_cookie('chrome')
# get_explorer_cookie('ie')
pass
def get_explorer_cookie(mode):
# 获取浏览器 cookie
cookie_list = web.get_cookies(mode)
print(cookie_list)
i = 0
for cookie in cookie_list:
print(i)
print(cookie['name'] + ' '+cookie['value'])
i += 1
close_all
关闭所有网页
close_all(mode='cef')
参数
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
param task_kill, 是否终止浏览器进程, 默认False. 若为True,将强制结束指定的浏览器进程和由它启动的所有子进程 返回值
无
示例1
关闭Chroem浏览器当前打开的全部网页
from xbot import web
def main(args):
web.close_all('chrome')
handle_save_dialog
处理网页下载对话框
handle_save_dialog(file_folder, dialog_result='ok', mode='cef', * , file_name=None,wait_appear_timeout=20,focus_timeout=600)
参数
- file_folder:文件保存路径
- dialog_result:点击下载对话框中按钮 'ok' 确认下载 'cancel' 取消下载
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- file_name:保存文件名, 为None时自动为下载资源生成不重复的文件名
- wait_appear_timeout:等待对话框出现超时时间, 默认20s, 如果下载对话框超时未出现则抛出UIAError的异常
- focus_timeout:焦点超时时间(对话框出现和输入操作的间隔),默认600
返回值
无
示例1
在Chrome浏览器中处理下载对话框,并将目标目标文件重命名为 123.txt 并保存到D盘根目录下
from xbot import web
def main(args):
web.handle_save_dialog('D:\\', 'ok', 'chrome', file_name='123.txt', wait_appear_timeout=20)
handle_upload_dialog
处理网页上传对话框
handle_upload_dialog(filename, dialog_result='ok', mode='cef', * , wait_appear_timeout=20)
参数
- filename:要上传文件完整路径
- dialog_result:点击上传对话框中按钮 'ok',确认上传 'cancel',取消上传
- mode:浏览器类型
- 'cef':影刀浏览器
- 'chrome':Google Chrome浏览器
- 'ie': Internet Explorer浏览器
- wait_appear_timeout:等待对话框出现超时时间, 默认20s, 如果下载对话框超时未出现则抛出UIAError的异常
返回值
无
示例1
在Chrome浏览器中处理网页上传对话框,上传 D:\123.text 文件
from xbot import web
def main(args):
web.handle_upload_dialog('D:\\123.txt', 'ok', 'chrome', wait_appear_timeout=20)