QQ腾讯管家等级加速

from PIL import Image
import time
import requests
import json
import re
requests.packages.urllib3.disable_warnings()


def scanfIm():
    url = "https://graph.qq.com/qclogin/get_qr"
    headers = {
        'Host': 'graph.qq.com',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive',
        'User-Agent': 'open-sdk/1.0.0.18 Windows/10.0.17763',
    }
    # precode是关键点
    data = {
        "client_id": "101478239",
        "precode": precode,
        "sn": "xsn",
        "size": "100",
        "app_type": "1",
        "dev_hmac": "SX1QTl4vuhgBjNKq2I5GkHKzxfKMNL4Y6jo_XkKvXWE",
        "nonce": "8620503023166533470"
    }
    r = requests.post(url, headers=headers, data=data, verify=False)
    j = json.loads(r.text)
    img_url = j['img_url']
    query_url = j['query_url']
    im = Image.open(requests.get(img_url, stream=True, verify=False).raw)
    im.resize((150, 150))
    im.show()
    im.save('qr.png')
    while True:
        ret = isscan(query_url)
        if ret == 1:
            getctk(query_url)
            break
        if ret == 3:
            break
    print(str(ctk)+"---"+str(openid)+"---"+str(accesstoken))
    getjumpurl()


def getjumpurl():
    url = "https://graph.qq.com/qclogin/get_jump"
    headers = {
        'Host': 'graph.qq.com',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive',
        'User-Agent': 'open-sdk/1.0.0.18 Windows/10.0.17763',
    }
    data = {
        "ctk": ctk,
        "dev_hmac": "SX1QTl4vuhgBjNKq2I5GkHKzxfKMNL4Y6jo_XkKvXWE",
        "nonce": "8620503023166533470",
        "openid": openid,
        "accesstoken": accesstoken,
        "src_appid": "101478239",
        "dst_appid": "101478239",
        "redirect_uri": "https%3A%2F%2Fp.guanjia.qq.com%2Fbin%2Fuser%2Fopenidjump.php%3Fredirect%3Dhttps%3A%2F%2Fs.pcmgr.qq.com%2Fuser_v3%2F",
        "state": "ADTAG%3DCLIENT.GJ.TASK.sid%3D1%26version%3D13.6.20660.301%26guid%3Decc7dda358ffeea1744c0337549d029f%26timestamp%3D12282851"
    }
    r = requests.post(url, headers=headers, data=data, verify=False)
    j = json.loads(r.text)
    jump_url = j['jump_url']
    getlocurl(jump_url)


def getlocurl(jump_url):
    header = {
        'Host': 'graph.qq.com',
        'Connection': 'keep-alive',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    # 这里是302状态码,为重定向转发
    s = requests.session()
    r = s.get(jump_url, headers=header,
              allow_redirects=False, verify=False)
    locurl = r.headers["Location"]
    getcookie(locurl)


def getcookie(locurl):
    global cookies
    header = {
        'Host': 'p.guanjia.qq.com',
        'Connection': 'keep-alive',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    # 这里是302状态码,为重定向转发
    s = requests.session()
    r = s.get(locurl, headers=header,
              allow_redirects=False, verify=False)
    cookie = r.headers["Set-Cookie"]
    __qc__openid = re.findall(r'__qc__openid=.*?;', str(cookie))[0]
    pm_name = re.findall(r'pm_name=.*?;', str(cookie))[0]
    __qc__k = re.findall(r'__qc__k=.*?;', str(cookie))[0]
    pm_head = re.findall(r'pm_head=.*?;', str(cookie))[0]
    cookies = str(__qc__openid+pm_name+__qc__k+pm_head)
    cookies = extract_cookies(cookies)
    print(cookies)


def getctk(url):
    global ctk, openid, accesstoken
    headers = {
        'Host': 'graph.qq.com',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive',
        'User-Agent': 'open-sdk/1.0.0.18 Windows/10.0.17763',
    }
    while True:
        r = requests.get(url, headers=headers, verify=False)
        j = json.loads(r.text)
        n = len(j)
        if n > 2:
            accesstoken = j['accesstoken']
            ctk = j['ctk']
            openid = j['openid']
            break


def isscan(url):
    headers = {
        'Host': 'graph.qq.com',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Connection': 'keep-alive',
        'User-Agent': 'open-sdk/1.0.0.18 Windows/10.0.17763',
    }
    r = requests.get(url, headers=headers, verify=False)
    j = json.loads(r.text)
    msg = j['msg']
    ret = j['ret']
    print(str(msg)+"--"+str(ret)+"\n")
    if ret == 2:
        print('waitting...')
        return 2
    if ret == 1:
        print('scanf successful!')
        return 1
    if ret == 3:
        print('have no using qecode')
        return 3


t = int(round(time.time()*1000))
t10 = str(int(time.time()))


def getDetails():
    url = "https://p.guanjia.qq.com/bin/user/qrydjjs.php?callback=jQuery17208707432234659791_" + \
        str(t)+"&isopenid=1&_="+str(t)
    headers = {
        'Host': 'p.guanjia.qq.com',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Referer': 'https://s.pcmgr.qq.com/user_v3/?ADTAG=CLIENT.GJ.TASK.sid=1&version=13.6.20660.301&guid=ecc7dda358ffeea1744c0337549d029f&timestamp=104119463',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    r = requests.get(url, headers=headers, cookies=cookies, verify=False)
    rs = str(re.findall(r'{.*?}', str(r.text))[0])+"}"
    j = json.loads(rs, strict=False)
    totalSpeedupDays = j['result']['totalSpeedupDays']
    print(totalSpeedupDays)


def extract_cookies(cookies):
    cookies = dict([l.split("=", 1) for l in cookies.split("; ")])
    return cookies


# 请求加速的
def reqtospeed():
    url = "https://p.guanjia.qq.com/bin/user/speeduppickup.php?op=start&callback=jQuery17207531308580655605_" + \
        str(t)+"&isopenid=1&_="+str(t)
    headers = {
        'Host': 'p.guanjia.qq.com',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Referer': 'https://s.pcmgr.qq.com/user_v3/inc/speedupb.html?t=0.08087191707454622',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    r = requests.get(url, headers=headers, cookies=cookies, verify=False)
    rs = str(re.findall(r'{.*?}', str(r.text))[0])+"}"
    j = json.loads(rs, strict=False)
    u32Status = j['result']['u32Status']
    if u32Status == 1:
        print('request to Speed successful')
    if u32Status == 3:
        print('Speed have finished,need not to request!')
    else:
        print('request to Speed failed')


# 请求加速的时长
def querspeed():
    url = "https://p.guanjia.qq.com/bin/user/speeduppickup.php?op=query&callback=jjQuery17207531308580655605_" + \
        str(t)+"&isopenid=1&_="+str(t)
    headers = {
        'Host': 'p.guanjia.qq.com',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Referer': 'https://s.pcmgr.qq.com/user_v3/inc/speedupb.html?t=0.08087191707454622',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    r = requests.get(url, headers=headers, cookies=cookies, verify=False)
    rs = str(re.findall(r'{.*?}', str(r.text))[0])+"}"
    j = json.loads(rs, strict=False)
    u32Status = j['result']['u32Status']
    u32SpeedupSec = j['result']['u32SpeedupSec']
    if u32Status == 1:
        print('request Speed  successful')
    if u32SpeedupSec != 1800 and u32Status == 2:
        print('Speeding... '+str(u32SpeedupSec))
    if u32SpeedupSec == 1800 and u32Status == 3:
        # 加速时间已完成,然后请求领取加速时长
        sucspeed()
    if u32Status == 4 and u32SpeedupSec == 1800:
        print('Speed have finished')


# 加速成功的
def sucspeed():
    url = "https://p.guanjia.qq.com/bin/user/speeduppickup.php?op=update&callback=jQuery17207531308580655605_" + \
        str(t)+"&isopenid=1&_="+str(t)
    headers = {
        'Host': 'p.guanjia.qq.com',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.641.134 Safari/537.36 QBCore/3.43.641.400 QQBrowser/9.0.2524.400',
        'Referer': 'https://s.pcmgr.qq.com/user_v3/inc/speedupb.html?t=0.08087191707454622',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.5;q=0.4',
        'Accept-Encoding': 'gzip, deflate'
    }
    r = requests.get(url, headers=headers, cookies=cookies, verify=False)
    rs = str(re.findall(r'{.*?}', str(r.text))[0])+"}"
    j = json.loads(rs, strict=False)
    u32Status = j['result']['u32Status']
    if u32Status == 1:
        print('Speed successful,exit...')
    else:
        print('Speed loading...')


if __name__ == '__main__':
    scanfIm()
    time.sleep(3)
    reqtospeed()
    time.sleep(5)
    querspeed()
    time.sleep(5)
    sucspeed()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值