当前位置: 首页 > wzjs >正文

网站建设指引seo模拟点击软件源码

网站建设指引,seo模拟点击软件源码,安徽省政府建设实名制网站,小奶猫w5c0comrequest.session的cookie导入aiohttp._cookie_jar的教程 1.起因 我的 kook-valorant-bot 使用了两个开源库,用于riot账户的登录并获取token 其中最主要用的是基于aiohttp的floxay/python-riot-auth,但这个仓库不支持2fa用户(开启了邮箱双重…

request.session的cookie导入aiohttp._cookie_jar的教程

1.起因

我的 kook-valorant-bot 使用了两个开源库,用于riot账户的登录并获取token

  • 其中最主要用的是基于aiohttp的floxay/python-riot-auth,但这个仓库不支持2fa用户(开启了邮箱双重验证的用户)作者去年就说会写上,但是他比较忙没有排期;
  • 于是我又去找了一个另外一个基于request的Prodzify/Riot-auth 支持2fa登录的,半月前已经给bot加上了这个缺失半年的功能。

可是 Prodzify/Riot-auth 没有写cookie登录方法,其每次登录都需要账户密码,2fa用户每次都需要提供邮箱验证码;对于一个bot来说,每次操作这么麻烦,很是难受!

随后,我去询问了写discord valorant bot的作者,得知如果2fa用户使用cookie登录,其是不需要提供邮箱验证码的!

那么问题就变成了,如何将 request的cookie导入到aiohttp的_cookie_jar中,然后调用floxay/python-riot-auth已经写好的cookie登录方法呢?


1.1 前置声明

这里说明一下,我写bot全都是看khl.py的example自学的,到目前为止,我没有系统性的学习过python语法,关于py类和对象的知识全都得靠C++的存货来旁敲侧击;所以如果我的python博客中出现错误,那是很正常的,还请指正!

QQ图片20220504145105

2.查找办法

不多比比在互联网上大海捞针的困难了,我还是东平西凑才找到了一个办法

Python CookieJar.update_cookies方法代碼示例

该教程提到了下面的办法来导入cookie

# 需要導入模塊: from aiohttp import CookieJar [as 別名]
# 或者: from aiohttp.CookieJar import update_cookies [as 別名]
def test_domain_filter_ip_cookie_send(loop) -> None:jar = CookieJar(loop=loop)cookies = SimpleCookie("shared-cookie=first; ""domain-cookie=second; Domain=example.com; ""subdomain1-cookie=third; Domain=test1.example.com; ""subdomain2-cookie=fourth; Domain=test2.example.com; ""dotted-domain-cookie=fifth; Domain=.example.com; ""different-domain-cookie=sixth; Domain=different.org; ""secure-cookie=seventh; Domain=secure.com; Secure; ""no-path-cookie=eighth; Domain=pathtest.com; ""path1-cookie=nineth; Domain=pathtest.com; Path=/; ""path2-cookie=tenth; Domain=pathtest.com; Path=/one; ""path3-cookie=eleventh; Domain=pathtest.com; Path=/one/two; ""path4-cookie=twelfth; Domain=pathtest.com; Path=/one/two/; ""expires-cookie=thirteenth; Domain=expirestest.com; Path=/;"" Expires=Tue, 1 Jan 1980 12:00:00 GMT; ""max-age-cookie=fourteenth; Domain=maxagetest.com; Path=/;"" Max-Age=60; ""invalid-max-age-cookie=fifteenth; Domain=invalid-values.com; "" Max-Age=string; ""invalid-expires-cookie=sixteenth; Domain=invalid-values.com; "" Expires=string;")jar.update_cookies(cookies)cookies_sent = jar.filter_cookies(URL("http://1.2.3.4/")).output(header='Cookie:')assert cookies_sent == 'Cookie: shared-cookie=first'

floxay/python-riot-auth 里正好封装了cookie jar,也就是说,我们只要想办法弄出来一个 SimpleCookie 对象,再调用 update_cookie 方法,就大功告成了!

3.最终实现

关于这两个登录项目的源码,请去github仓库查看

下面只对cookie部分进行说明!

3.1 request和aiohttp的cookies差异

因为cookie部分涉及到riot账户的登录信息,所以必须打码

首先当然是从request里面拿到cookie了

self.cookie = self.session.cookies
print(self.cookie)

这里直接打印,获取到的内容如下

image-20230115221654861

而aiohttp的cookie打印出来是下面这样的

auth = riot_auth.RiotAuth("账户","密码")
print(auth._cookie_jar._cookies)

image-20230115221720971

可以看到,两个库打印的内容不太相同,但是其键值是一致的,我们只需要把request的键值导入到SimpleCookie里面就可以了

3.2 request.session的cookie导出为dict

要想导入到SimpleCookie里面,我们可以先来看看这个类的构造是什么

image-20230115223356199

可以看到,该类其实是支持用dict来初始化的

现在问题又变成了,如何将request.session的cookie导出为dict

百度一下,这个问题的答案还是能找得到的

au = Auth(username="账户",password="密码")
ck_dict = requests.utils.dict_from_cookiejar( au.cookie )
print(ck_dict)

此时打印出来的结果如下,成功转换成了dict

image-20230115223628589

再把这个dict丢进SimpleCookie,运行无报错,那么说明ojbk了

3.3 最终实现

现在就只需要进行如下的操作,就能实现把2fa用户的cookie导入到riot_auth.RiotAuth()里面了!

import asyncioif __name__ == '__main__':print(f"Start")au = Auth(username="账户",password="密码")ck_dict = requests.utils.dict_from_cookiejar( au.cookie )print(ck_dict)scookie = SimpleCookie(ck_dict)auth = riot_auth.RiotAuth()auth._cookie_jar._cookiesauth._cookie_jar.update_cookies(scookie)ret = asyncio.run(auth.reauthorize())print(ret) #成功!!!!

auth.reauthorize()方法会返回一个bool值,标识是否登录成功

image-20230115223844572

当然成功啦!

4.结语

不得不说,这个问题的答案网上是真的无现成的,都得东平西凑,花了我差不多一个半小时才找到正确方法

不过现在终于可以保存2fa用户的登录信息了,也算是bot的功能升级吧!

http://www.dtcms.com/wzjs/253556.html

相关文章:

  • 扬州网站建设交换链接或称互惠链接
  • 做网站需知网站建设的重要性
  • 西安免费做网站百度seo策略
  • 深圳网站建设制作厂家百度怎么注册自己的店铺
  • 厨之梦进口食品网站谁做的免费b站推广网站有哪些
  • 网站开发公司需要哪些资质深圳网络推广渠道
  • 网站界面修改软件外包企业排名
  • 网页版游戏在线玩无需登录优化营商环境工作开展情况汇报
  • 网站建设建议书手机google官网注册账号入口
  • 赤壁网站定制注册域名后怎么建网站
  • 做时彩网站违法吗湛江seo推广公司
  • 网站建设云解析dns有什么用线上职业技能培训平台
  • 广东装饰公司网站建设石家庄网站建设
  • 1688黄页网免费网站网络营销软件代理
  • 网商网官网搜索seo优化托管
  • 广州市疫情最新通报网站搜索排优化怎么做
  • 购买一个网站多少钱网络销售好不好做
  • 贵阳建设网站爱站网综合查询
  • 网站设计与建设实验报告企业seo职位
  • 网站细节重庆seo全面优化
  • dwcs3如何做网站最新新闻热点
  • 网站开发需求 德州app推广注册从哪里接单
  • 论坛上怎么做网站优化100个成功营销策划案例
  • dedese网站百度风云榜官网
  • 南京网站建设哪家好网站注册搜索引擎的目的是
  • 门户网站源码入驻在线网站分析工具
  • 国外免费搭建网站教师遭网课入侵直播录屏曝光广场舞
  • 做新闻微网站有哪些今日疫情最新情况
  • 烟台 o2o平台带动做网站行业电商关键词一般用哪些工具
  • 做网页兼职网站国际军事新闻今日头条