lua文本读取账号密码分割登录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua文本读取账号密码分割登录相关的知识,希望对你有一定的参考价值。
是这样的,我想实现,比如QQ账号密码,在TXT文本,怎么实现分割后,每次读取一行进行登录,试过很多方法都不行,有地方不通!每次 要不就是获取全部了,要不只获取了第一行,切换下一行也切换不了!
迭代的话也是 也是直接读取了全部 账号密码,我的意思 就是 每次调用的时候 取一行,下次调用取第二行 就这样!
function strformat(s)
local x,ch
--x='' for i=1,strlen(s) do ch=strsub(s,i,i);if not (ch>='0' and ch<='9') then x=x..ch end end
x=gsub(s,"%c-%s-%p-(%w+)","%1 ")
x=gsub(x,"^%s*(.-)%s*$", "%1")
return x
end
function lua_string_split(str, split_char)
local sub_str_tab = ;
while 2>1 do
local pos = strfind(str, split_char);
if (not pos) then
local size_t = getn(sub_str_tab)
tinsert(sub_str_tab,size_t+1,str);
break;
end
local sub_str = strsub(str, 1, pos - 1);
local size_t = getn(sub_str_tab)
tinsert(sub_str_tab,size_t+1,sub_str);
local t = strlen(str);
str = strsub(str, pos + 1, t);
end
return sub_str_tab;
end
s="Hello\\t world\\t bb 888 ~[],!.(),is lua\\n we are the world"
-- 以下行删除数字
x='' for i=1,strlen(s) do ch=strsub(s,i,i);if not (ch>='0' and ch<='9') then x=x..ch end end
x=gsub(x,"%c-%s-%p-(%w+)","%1 ") --删除串中的除字母数字外的所有字符(单词以一个空格间隔)
x=gsub(x,"^%s*(.-)%s*$", "%1") --删除尾空
print(x)
print(strformat('Hello\\t world\\t bb 888 ~[],!.(),is lua\\n we are the world'))
s="Hello\\t world\\t bb 888 ~[],!.(),is lua\\n we are the world"
s=strformat(s)
--s=gsub(s,' ',',')
s=lua_string_split(s,' ')
for i=1,getn(s) do print((s[i])) end
--~ 下面的表列出了Lua支持的所有字符类:
--~ 单个字符(除^$()%.[]*+-?外): 与该字符自身配对
--~ .(点): 与任何字符配对
--~ %a: 与任何字母配对
--~ %c: 与任何控制符配对(例如\\n)
--~ %d: 与任何数字配对
--~ %l: 与任何小写字母配对
--~ %p: 与任何标点(punctuation)配对
--~ %s: 与空白字符配对
--~ %u: 与任何大写字母配对
--~ %w: 与任何字母/数字配对
--~ %x: 与任何十六进制数配对
--~ %z: 与任何代表0的字符配对
--~ %x(此处x是非字母非数字字符): 与字符x配对. 主要用来处理表达式中有功能的字符(^$()%.[]*+-?)的配对问题, 例如%%与%配对
--~ [数个字符类]: 与任何[]中包含的字符类配对. 例如[%w_]与任何字母/数字, 或下划线符号(_)配对
--~ [^数个字符类]: 与任何不包含在[]中的字符类配对. 例如[^%s]与任何非空白字符配对
--~ 当上述的字符类用大写书写时, 表示与非此字符类的任何字符配对. 例如, %S表示与任何非空白字符配对.例如,'%A'非字母的字符 参考技术A 这个很简单~~要看Lua号,是5.1的话,那你可以下Luadec来反编译。他并没有加密,那是Lua字节码用luac加密过了,可以dofile ""的格式调用运行,然后修改数值保存替换。追问
.....我问的 是如何分割,提取登录啊
参考技术B说实话,看不懂所说。看代码分割应该是没问题。
居然账号密码提取出来了,根据data表从1到n进行读取不就行了
-- 遍历datafor _, v in pairs(data) do
if type(v) == "table" then
login(v[1], v[2])
end
end
还是说你这main.lua并不是执行所有的账号密码
追问有没有联系方式啊啊
C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?
想实现qq音乐网页版自动登录功能,但是不知道怎么用webBrowser控件获取对应的网页元素。之前别的网页可以用下面的方式获取成功,但是这个qq音乐网页不行了,请大神指教!
以前是这样做的,如图1:
HtmlElement user = webBrowser1.Document.All["username"];//获取账号文本框,ID=username
HtmlElement password = webBrowser1.Document.All["password"];//获取密码文本框,ID=password
HtmlElement LoginButton = webBrowser1.Document.All["sso_login"];//获取登录按钮,ID=sso_login
user.SetAttribute("value","abc");//给账号文本框内容设置为“abc”password.SetAttribute("value",“*123” );//给密码文本框内容设置为“*123”
LoginButton.InvokeMember("click");//调用按钮的点击事件
现在qq音乐网页同样方法不行了,如图2
QQ音乐登录的方式好像是API的方式,给你两个方案
1、API方式:然后输入对应的参数,你就可以登录成功,这时你就可以做自己的想做的事了
2、模拟点击(selenium)方式:即使利用seleium模拟鼠标点击网页,实现登录,这个方式属于笨拙的方式
注意:有时候可能出现需要输入验证码,这时你就需要识别验证码,给你推荐 tesseract-ocr 这个插件,源码地址tesseract-orc 不明白的留言吧
追问1、API方式指的是啥呀?可以具体点不?
2、selenium方式,是不是运行软件的时候,自己的鼠标就不能乱动了?
3、验证码还没进行到这一步,只求先解决能输入帐号密码的功能就行
那有什么其他方法吗?还请指教了!
追答指教谈不上。尝试一下获得class属性值的看看有没有什么收获
追问之前也用过遍历className=inputstyle来找,但是也不行,结果值没有等于这项的
追答不好意思 刚刚看见 如果实在不能 控制 能不能尝试脚本控制
参考技术C 我觉得是因为qq的是个弹框,你代码执行的时候,弹框还没出现,所以要循环等待?追问你好,我是把弹框点开后,所有界面出现了,我再去用代码找那些元素的,但是不行。这种弹窗是有什么别的特殊方法吗?求指教!
追答你把现有代码发来看看(最好是放github)
追问我就是在winform窗体中,用webBrowser控件打开y.qq.com,然后把登录界面手动点开,再在一个按钮里面加下面代码。只不过支行完,都是没有值,元素都是Null
HtmlElement user = webBrowser1.Document.All["u"];
HtmlElement password = webBrowser1.Document.All["p"];
HtmlElement LoginButton = webBrowser1.Document.All["login_button"];
LoginButton.InvokeMember("click");
共享代码调试
以上是关于lua文本读取账号密码分割登录的主要内容,如果未能解决你的问题,请参考以下文章
C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?