Skip to content

sun589/PyQQSkeyTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


PyQQSkeyTool

一款集成了QQSkey/QQClientkey获取的库


安装方法

在cmd执行以下命令:

pip install PyQQSkeyTool

打包方法

在cmd执行以下命令:

python setup.py sdist

使用实例

扫码登录:

# 扫码登录实例
import PyQQSkeyTool
import base64
import os
import time
qrlogin = PyQQSkeyTool.QrLogin("qzone.qq.com",custom_data=None) # 这里可以填qzone.qq.com/qun.qq.com/vip.qq.com/自定义(需往下看)
qr_data = qrlogin.getQrcode(base64_encode=True) # 返回:{"code":0,"img":"xxxxxx","qrsig":"xxxx","ptqrtoken"xxxxx"} 如果base64_encode为False则返回图片数据
code = qr_data.get("code")
if code != 0: # 代表获取失败
    raise Exception("获取失败!")
qr_img = qr_data.get("img")
qr_qrsig = qr_data.get("qrsig")
qr_ptqrtoken = qr_data.get("ptqrtoken")
with open("QRcode.jpg",'wb') as f: # 写入至文件
    f.write(base64.b64decode(qr_img)) # 如果前面base64_encode为False则直接f.write(qr_img)即可
os.startfile("QRcode.jpg") # 打开二维码
while True:
    status_data = qrlogin.check_scanning_status()
    if status_data.get("code") in [1, -1, -2]: # 检测登录成功或失效,成立则退出
        break
    print(time.strftime('%H:%M:%S'), status_data.get("msg")) # 输出二维码当前状态
    time.sleep(3) # 最好加个等待避免封ip,频率可自定
print(status_data.get("uin"), status_data.get("login_url")) # 输出QQ号和登录网址
print(qrlogin.getCookies()) # 输出Cookies 返回:{"code":0,msg:"获取成功!","cookies":{xxxxx}}

获取Clientkey:

# clientkey获取实例
# clientkey_url和ptsigx_url均可以登录网站,如果clientkey_url不行就换ptsigx_url的
import PyQQSkeyTool
ck = PyQQSkeyTool.ClientkeyLogin()
print(ck.getClientkey()) # 返回:{'code': 0, 'uin': xxxx, 'nickname': 'xxx', 'clientkey': 'xxxx'}
print(ck.getLoginUrl()) # 返回:{"code":0,"msg":"获取成功!",ptsigx_url:{xxx},clientkey_url:{xxx}}

如何自定义登录data

库内已内置qzone.qq.com/qun.qq.com/vip.qq.com三个登录data,如需要其他请往下看:
首先你得有一定的爬虫基础,然后在你想要的网站开F12抓包,刷新登录页面,等待出现二维码,然后在开发工具点Img,找到 https://ssl.ptlogin2.qq.com/ptqrshow请求,点负载,然后将对应的参数填在指定格式的字典内:

{"s_url":"xxxx","daid":"xxx","appid":"xxxx"}

s_url:对应参数的u1
daid:对应参数的daid
appid:对应参数的appid

示例:

image 以上为vip.qq.com的参数,那么按照格式就应该在custom_data填入:

{"s_url":"https://vip.qq.com/loginsuccess.html","daid":"18","appid":"8000201"}

在填好后,只需在实例化QrLogin类时填入参数custom_data即可生效使用

qrlogin = PyQQSkeyTool.QrLogin(custom_data={"s_url":"https://vip.qq.com/loginsuccess.html","daid":"18","appid":"8000201"})

Releases

No releases published

Packages

No packages published

Languages