开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 58|回复: 2
收起左侧

[易语言] 浏览器拦截返回数据

[复制链接]
结帖率:60% (21/35)
发表于 昨天 21:18 | 显示全部楼层 |阅读模式   山东省济南市
10精币
现在那给浏览器能拦截返回 数据 类似 sunny  中间件    精易 web  浏览器好像拦截不到
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_btn_Go_被单击  
精易Web浏览器1.浏览网页 (删首尾空 (txt_Url.内容))
子程序名返回值类型公开备 注
_txt_Url_按下某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型
功能键状态整数型
如果真 (键代码 = #回车键 )
_btn_Go_被单击 ()

子程序名返回值类型公开备 注
_精易Web浏览器1_文档就绪  
参数名类 型参考可空数组备 注
就绪框架ID整数型
statuBar.置文本 (0, “已就绪”)
子程序名返回值类型公开备 注
_精易Web浏览器1_即将导航到新地址  
参数名类 型参考可空数组备 注
导航类型整数型
URL文本型
statuBar.置文本 (0, “正在打开新地址:” + URL)
子程序名返回值类型公开备 注
_精易Web浏览器1_标题被改变  
参数名类 型参考可空数组备 注
标题文本型
_启动窗口.标题 = “精易Web浏览框 -” + 标题
子程序名返回值类型公开备 注
_精易Web浏览器1_URL被改变  
参数名类 型参考可空数组备 注
URL文本型
所属框架ID整数型
statuBar.置文本 (0, “正在浏览:” + URL)
子程序名返回值类型公开备 注
_精易Web浏览器1_文档载入完毕  
参数名类 型参考可空数组备 注
载入URL文本型
载入状态整数型
失败原因文本型
变量名类 型静态数组备 注
state文本型 
判断 (载入状态 = 0)
state = “载入成功”
判断 (载入状态 = 1)
state = “载入失败”
判断 (载入状态 = 3)
state = “取消载入”


statuBar.置文本 (0, “URL:” + 载入URL + “ 载入状态:” + state + 选择 (失败原因 ≠ “”, “失败原因: ” + 失败原因, “”))
子程序名返回值类型公开备 注
_精易Web浏览器1_控台消息输出  
参数名类 型参考可空数组备 注
级别整数型
行号整数型
消息文本型
来源名称文本型
堆栈跟踪文本型
WriteLog (消息)
子程序名返回值类型公开备 注
_精易Web浏览器1_Alert将被调用  
参数名类 型参考可空数组备 注
消息文本型
信息框 (消息, 0, “alert 被捕获了哦!”, )  ' 此处不调用信息框 信息框将不会弹出
子程序名返回值类型公开备 注
_精易Web浏览器1_Confirm将被调用逻辑型 
参数名类 型参考可空数组备 注
消息文本型
' 捕获网页上的 confirm 弹出窗口
如果真 (信息框 (消息, #确认取消钮, “捕获Confirm”, )#确认钮 )
返回 ()
返回 ()
子程序名返回值类型公开备 注
_精易Web浏览器1_正在下载文件逻辑型 
参数名类 型参考可空数组备 注
文件URL文本型
WriteLog (“文件下载:” + 文件URL)  ' 自己处理要下载的内容
子程序名返回值类型公开备 注
_精易Web浏览器1_Url载入开始逻辑型 
参数名类 型参考可空数组备 注
Url文本型
Job整数型
变量名类 型静态数组备 注
boxWKE_填表 
fun特殊功能 
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_精易模块, “name==userName”, 1, “value”, “admin”)  ' 精易填表模式 xxx==xxxx
调试输出 (Url)
如果真 (寻找文本 (Url, “http://reg.email.163.com/unireg/call.do?cmd=register.verifyCode&v=common/verifycode/vc_en&vt=main_acode&env”, , ) > 0)  ' 判断是否是验证码的URL
调试输出 (Url)
fun.拦截网络请求 (Job)  ' 拦截验证码

返回 ()
子程序名返回值类型公开备 注
_精易Web浏览器1_Url载入结束逻辑型 
参数名类 型参考可空数组备 注
Url文本型
Job整数型
数据字节集指针整数型
数据长度整数型
调试输出 (数据长度)
imgbox_vcode.图片 = 指针到字节集 (数据字节集指针, 数据长度)  ' 取出拦截的验证码图片字节集
返回 ()
子程序名返回值类型公开备 注
_btn_bindFunc_被单击  
变量名类 型静态数组备 注
jsJavascript 
js.绑定子程序 (“clickFunc”, &无参无返回值绑定测试, 0)  ' 载入网页前绑定 , 此处绑定一个网页的JS函数,当函数被触发时,会调用指定的易语言子程序
精易Web浏览器1.载入HTML文本 ( #无参绑定测试 )
子程序名返回值类型公开备 注
_btn_bindParamFunc_被单击  
变量名类 型静态数组备 注
jsJavascript 
js.绑定子程序 (“bindFunc”, &有参无返回值绑定测试, 1)  ' 载入网页前绑定 , 此处绑定一个网页的JS函数,当函数被触发时,会调用指定的易语言子程序
精易Web浏览器1.载入HTML文本 ( #有参绑定测试 )
子程序名返回值类型公开备 注
_btn_bindFuncRet_被单击  
变量名类 型静态数组备 注
jsJavascript 
js.绑定子程序 (“returnTest”, &有返回值绑定测试, 1)  ' 载入网页前绑定 , 此处绑定一个网页的JS函数,当函数被触发时,会调用指定的易语言子程序
精易Web浏览器1.载入HTML文本 ( #返回值绑定测试 )
子程序名返回值类型公开备 注
_btn_LoadP_被单击  
精易Web浏览器1.载入HTML文本 ( #无框架填表 )  ' 首先载入填表页面
子程序名返回值类型公开备 注
_btn__From_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_精易模块, “name==userName”, 1, “value”, “admin”)  ' 精易填表模式 xxx==xxxx
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “[type=passWord]”, 1, “value”, “123456”)
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “input”, 4, “value”, 852436@qq.com)  ' 定位底4个input 也就是email
box.元素点击 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “form>button”, 1)  ' 这个就是指form下面的button 但需要注意 这里很可能会返回多个,这是就要指定下标了 默认是指向第一个
' box.元素点击 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “form>input[name=myfile]”, 1)
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “form>input[name=myfile]”, 1, #事件_单击, 假, )  ' 还可以这样触发事件 新API
' 测试页面,百度首页
' tb.元素点击 (精易Web浏览器1.取WebView (), #填表模式_精易模块, “a.innerHTML==新闻”, 1)  ' 格式是 元素名称.innerHTML == 'xxx'  两个等号
子程序名返回值类型公开备 注
_btn_LoadD_被单击  
精易Web浏览器1.浏览网页 (“https://login.1688.com/member/signin.htm?spm=a260k.635.2683862.d3.6633436ckC3y7Z&Done=https%3A%2F%2Fwww.1688.com%2F”)  ' 载入页面
子程序名返回值类型公开备 注
_btn_iframeFrom_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
延迟 (200)
box.表单_置填表框架 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, , 1)  ' 找对框架的排序号 从1开始 也就是填表页面的框架序号 具体看之后视频教程
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “#J_Quick2Static”, 1, #事件_单击, 假, )
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “#TPL_username_1”, 1, “value”, “laoguo”)  ' # 代表ID筛选
box.表单_Input写属性 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “[name=TPL_password]”, 1, “value”, “123456”)
子程序名返回值类型公开备 注
_txt_JsStr_获得焦点  
如果真 (txt_JsStr.内容 = “可以执行JQ代码,使用前可以判断一下JS是否载入完毕”)
txt_JsStr.内容 = “”

子程序名返回值类型公开备 注
_txt_JsStr_失去焦点  
如果真 (删首尾空 (txt_JsStr.内容)“”)
txt_JsStr.内容 = “可以执行JQ代码,使用前可以判断一下JS是否载入完毕”

子程序名返回值类型公开备 注
_btn_LoadEventPage_被单击  
精易Web浏览器1.载入HTML文本 ( #事件测试网页 )
子程序名返回值类型公开备 注
_btn_eventClick_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “div”, 1, #事件_单击, 假, )
子程序名返回值类型公开备 注
_btn_mouseover_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “div”, 1, #事件_鼠标移入, 假, )
子程序名返回值类型公开备 注
_btn_mouseout_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “div”, 1, #事件_鼠标移出, 假, )
子程序名返回值类型公开备 注
_btn_keyevent_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “div”, 1, #事件_某键按下, 假, )
子程序名返回值类型公开备 注
_btn_LoadVcodeUrl_被单击  
精易Web浏览器1.浏览网页 (“http://reg.email.163.com/unireg/call.do?cmd=register.entrance”)
子程序名返回值类型公开备 注
_btn_RunJS_被单击  
变量名类 型静态数组备 注
jsJavascript 
es整数型 
vl长整数型 
es = js.创建全局JS执行状态 (精易Web浏览器1.取WebView ())
vl = js.运行JS_值对象 (精易Web浏览器1.取WebView (), txt_JsStr.内容)
WriteLog (js.取执行结果到文本 (es, vl))
子程序名返回值类型公开备 注
_btn_about_被单击  
载入 (窗口1, , )
子程序名返回值类型公开备 注
_btn_innerHTMLSelector_被单击  
变量名类 型静态数组备 注
tbWKE_填表 
' 测试页面,百度首页
tb.元素点击 (精易Web浏览器1.取WebView (), #填表模式_精易模块, “a.innerHTML==新闻”, 1)  ' 格式是 元素名称.innerHTML == 'xxx'  两个等号
子程序名返回值类型公开备 注
_btn_LoadMsgPage_被单击  
精易Web浏览器1.浏览网页 (https://ffo.qq.com/act/gmi519493/)
子程序名返回值类型公开备 注
_btn_Activeiframe_被单击  
变量名类 型静态数组备 注
boxWKE_填表 
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “.wp-onb-tit>a”, 2, #事件_单击, 假, )
box.元素_触发指定事件 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “.wp-on-form>button”, 1, #事件_单击, 假, )
子程序名返回值类型公开备 注
_btn_Silde_被单击  
变量名类 型静态数组备 注
main特殊功能 
boxWKE_填表 
x整数型 
y整数型 
xx整数型 
yy整数型 
i整数型 
px整数型 
' 这里是使用的框架序号,也就是框架在网页中排序的位置,
' 偏移 10 是因为元素定位的坐标一般都是元素左上角的位置,元素本身有宽度与高度所以每次操作的点都可以不一样,
' 稍后可以使用取元素矩形获取元素的size相关信息,就可以在一个范围内随机点击
' 这里只是写一个测试案例,稍后会提供一个滑动的方法,操作会更加简便 大家也方便学习一下 这几个命令的用法
box.表单_置填表框架 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, , 2)
x = box.元素_取横坐标 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “#tcaptcha_drag_thumb”, 10, 1)
y = box.元素_取纵坐标 (精易Web浏览器1.取WebView (), #填表模式_JS表达式, “#tcaptcha_drag_thumb”, 15, 1)
调试输出 (x, y)
main.开启触屏模式 (精易Web浏览器1.取WebView (), )  ' 如果手机页面可以打开该选项
main.开关鼠标消息 (精易Web浏览器1.取WebView (), )  ' 滑动的过程中关闭一下鼠标消息,以免发生错位
main.鼠标左键按下 (精易Web浏览器1.取WebView (), x, y)
px = 到整数 (删首尾空 (txt_px.内容))
计次循环首 (px, i)  ' 每次一个像素 这里是随便写的 真正操作的话最好随机性要更强一些
main.鼠标移动 (精易Web浏览器1.取WebView (), x + i, y)
延迟 (取随机数 (1, 20))
计次循环尾 ()
main.鼠标左键抬起 (精易Web浏览器1.取WebView (), x, y)
main.开启触屏模式 (精易Web浏览器1.取WebView (), )
main.开关鼠标消息 (精易Web浏览器1.取WebView (), )
子程序名返回值类型公开备 注
_btn_ShowDevTool_被单击  
变量名类 型静态数组备 注
fun特殊功能 
' 注意打开调试器的目录不要包含中文,如果中文目录需要UTF8编码
fun.调用DevTool (精易Web浏览器1.取WebView (), “showDevTools”, 取运行目录 ()“\front_end\inspector.html”)


i支持库列表   支持库注释   
wke精易web浏览器
iext扩展界面支持库一
spec特殊功能支持库


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:100% (11/11)

签到天数: 8 天

发表于 1 小时前 | 显示全部楼层   广西壮族自治区贺州市
目测这个代码事件用错了,网址也过时了
核心问题是:精易浏览器的Url载入结束拦不住网页偷偷发的异步请求(验证码就是这么加载的)
解决办法就一句话:别用事件拦截了,直接往网页里注入一段 JS 代码,盯着网络请求,发现验证码就把它截下来传回易语言
回复

使用道具 举报

结帖率:91% (32/35)

签到天数: 8 天

发表于 1 小时前 | 显示全部楼层   山东省临沂市
你发这一大堆不如直接把代码文件发出来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表