51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

简单的获取网页cookie案例

例如一个网页的原始cookie是

uu=hfsjfyesu;

登录成功后的cookie是

userId=558456454; token=wwwdwblogcnwwwdwblogcnwwwdwblogcnwwwdwblogcnwwwdwblogcn; uu=hfsjfyesu; pin=sirhexs

那么我们先写一个if语句判断是否登录成功

if(webcookie:find"token=")then
  --上面这个if的意思是判断webcookie里面是否存在"token="这个字符串
  --这里是登录成功后要进行的操作,我们在这里写我们的cookie截取规则
end

然后我们根据规律和代码api写一个截取token的规则
要用到的代码:

str="左中右"
--取字符串左边
左=str:match("(.+)中")
--取字符串中间
中=str:match("左(.-)右")
--取字符串右边
右=str:match("中(.+)")

实现:

if(webcookie:find"token=")then
  cookie="token="..webcookie:match("token=(.-)uu=")
  --上面这行的意思是截取"token="到"uu="中间的这段字符串,然后拼接到"token="的后面,".."这两个点相当于一个加号,用来拼接两端字符串。
  mycookietxt.setText(cookie)--设置文本内容
  cookielay.setVisibility(View.VISIBLE)--显示控件
end

这就完成了一段cookie的截取了

完整代码参考(以饿了么为例):

require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "layout"

import "android.webkit.CookieSyncManager" import "android.webkit.CookieManager" import "android.content.Context" import "android.content.Intent" import "android.net.Uri" import "android.view.View" --上面为导入的包,看不懂就不要弄这部分

activity.setTheme(R.Theme_Blue) --设置标题 activity.setTitle("饿了么Cookie") activity.setContentView(loadlayout(layout))


--如果想获取其他网页的cookie也不需要太大的变动,只需更改第loginurl值和相关的if语句。


--登录链接 loginurl="https://tb.ele.me/wow/msite/act/login/?loginby=sns&redirect=https://h5.ele.me/minisite/pages/my/index?spm=a2ogi.13147251.0.0&spm-pre=a2ogi.13147251.0.0&spm=a2f6g.14291182.ebridge.login" --加载登录页面 web.loadUrl(loginurl)

--设置网页cookie函数 function setCookie(context,url,content) CookieSyncManager.createInstance(context) local cookieManager = CookieManager.getInstance() cookieManager.setAcceptCookie(true) cookieManager.setCookie(url, content) CookieSyncManager.getInstance().sync() end --获取cookie函数 function getCookie(url) local cookieManager = CookieManager.getInstance(); return cookieManager.getCookie(url); end --删除网页cookie函数 function delCookie() local cookieManager = CookieManager.getInstance() cookieManager.removeSessionCookie() cookieManager.removeAllCookie() end

--网页状态监听 web.setWebViewClient{ shouldOverrideUrlLoading=function(view,url) --Url即将跳转

end,

onPageStarted=function(view,url,favicon) --网页加载

end,

onPageFinished=function(view,url) --网页加载完成

--获取当前网页的cookie
webcookie=getCookie(url)
--判断cookie是否为空
if webcookie~=nil then

--其他网页cookie的截取 只需改下面这个if语句 if(webcookie:find"SID=")then cookie=webcookie mycookietxt.setText(cookie)--设置文本内容 cookielay.setVisibility(View.VISIBLE)--显示控件 end

end

end}

--复制按钮 cklaymyck.onClick=function() import "android.content.Context" activity.getSystemService(Context.CLIPBOARD_SERVICE).setText(cookie) print("复制成功")

end

--重新获取按钮 cklaycxhqck.onClick=function() cookielay.setVisibility(View.GONE)--隐藏控件 delCookie(web.getUrl()) cookie="" os.execute("rm -rf /data/data/"..this.packageName.."/cache/") os.execute("rm -rf /data/data/"..this.packageName.."/files/data/") -- web.reload()--刷新网页 web.loadUrl(weburl)--加载网页 end


其它几个常用的软件抓取ck的关键代码
京东

loginurl="https://plogin.m.jd.com/login/login?appid=445&returnurl=https%3A%2F%2Fm.healthjd.com%2F%3Fyyjdfromflag%3Dlogin"
if(webcookie:find"pt_key")then
        --正则截取ck
        cookie0=webcookie:match("pt_key=(.-)pt_token")
        --补全cookie
        cookie="pt_key="..cookie0
        if(cookie:find"pwdt_id") then
          cookie=cookie:match("(.+)pwdt_id")
        end
        mycookietxt.setText(cookie)--设置文本内容
        cookielay.setVisibility(View.VISIBLE)--显示控件
end

美团

loginurl="https://passport.meituan.com/useraccount/ilogin?risk_partner=-1&risk_app=-1&risk_platform=3&backurl=https://i.meituan.com/account"
if(webcookie:find"token=")then
        token="token="..webcookie:match("token=(.-);")
        userId="userId="..webcookie:match("userId=(.-);")
        cookie=userId.."&"..token
        mycookietxt.setText(cookie)--设置文本内容
        cookielay.setVisibility(View.VISIBLE)--显示控件
end

网易云

loginurl="https://y.music.163.com/m/login?targetUrl=/creatorcenter#/phone"
if(webcookie:find"MUSIC_U")then
        --正则截取ck
        cookie0=webcookie:match("MUSIC_U=(.+)")
        --补全cookie
        cookie="MUSIC_U="..cookie0
        while cookie:find";" do
          cookie=cookie:match("(.+);")
        end
        mycookietxt.setText(cookie)--设置文本内容
        cookielay.setVisibility(View.VISIBLE)--显示控件
end

参考文章:
https://www.kejiwanjia.com/jiaocheng/96463.html

赞(1)
未经允许不得转载:工具盒子 » 简单的获取网页cookie案例