Exemple #1
0
    def get_quit_of_group(self):
        # 获取最近30天内退出的群
        # 需要提交的数据
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        submit_data = {'bkn': str(bkn)}

        # 设置请求头,模拟人工
        header = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
            'Content-Type': 'text/plain',
            'origin': 'https://huifu.qq.com',
            'referer': 'https://huifu.qq.com/recovery/index.html?frag=0'
        }

        # 屏蔽https证书警告
        requests.packages.urllib3.disable_warnings()
        # 网页访问,post方式
        html = requests.post('https://huifu.qq.com/cgi-bin/gr_grouplist',
                             data=submit_data,
                             cookies=self.cookies_merge_dict_in_qun_qq_com,
                             headers=header,
                             verify=False)

        # 将返回数据解析为python对象
        result = json.loads(html.text)

        return result
Exemple #2
0
    def get_members_in_group(self, group_number):

        # 获取某个群的群成员
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        url = 'http://qinfo.clt.qq.com/cgi-bin/qun_info/get_members_info_v1?friends=1&name=1&gc=' + str(
            group_number) + '&bkn=' + str(bkn) + '&src=qinfo_v3'
        html = get_html(url, self.cookies_merge_dict_in_qun_qq_com)
        group_member = json.loads(html.text)
        return group_member
Exemple #3
0
    def get_info_in_qq_friend(self, qq_number):

        # 获取某个qq好友的详细信息

        # 需要提交的数据
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        submit_data = {
            'keyword': str(qq_number),
            'ldw': str(bkn),
            'num': '20',
            'page': '0',
            'sessionid': '0',
            'agerg': '0',
            'sex': '0',
            'firston': '0',
            'video': '0',
            'country': '1',
            'province': '65535',
            'city': '0',
            'district': '0',
            'hcountry': '1',
            'hprovince': '0',
            'hcity': '0',
            'hdistrict': '0',
            'online': '0'
        }

        # 需要提交的cookies
        # cookies = {'uin':self.cookies_merge_dict_in_qun_qq_com['uin'], 'skey':self.cookies_merge_dict_in_qun_qq_com['skey'], 'ptisp':self.cookies_merge_dict_in_qun_qq_com['ptisp'], 'RK':self.cookies_merge_dict_in_qun_qq_com['RK'], 'ptcz':self.cookies_merge_dict_in_qun_qq_com['ptcz']}

        # 设置请求头,模拟人工
        header = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'Origin': 'http://find.qq.com',
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'Referer': 'http://find.qq.com/',
        }

        # 屏蔽https证书警告
        requests.packages.urllib3.disable_warnings()
        # 网页访问,post方式
        html = requests.post('http://cgi.find.qq.com/qqfind/buddy/search_v3',
                             data=submit_data,
                             cookies=self.cookies_merge_dict_in_qun_qq_com,
                             headers=header,
                             verify=False)

        # 将好友信息解析为python对象
        friend_info = json.loads(html.text)
        # print(friend_info)
        return friend_info['result']['buddy']['info_list'][0]
Exemple #4
0
    def get_all_friends_in_qq(self):

        # 获取所有qq好友基本信息
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        submit_data = {'bkn': bkn}
        html = post_html('https://qun.qq.com/cgi-bin/qun_mgr/get_friend_list',
                         self.cookies_merge_dict_in_qun_qq_com, submit_data)
        friend_info = json.loads(html.text)
        # print(friend_info)
        return friend_info['result']
Exemple #5
0
    def get_group(self):

        # 获取所有群基本信息
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        submit_data = {'bkn': bkn}
        html = post_html('https://qun.qq.com/cgi-bin/qun_mgr/get_group_list',
                         self.cookies_merge_dict_in_qun_qq_com, submit_data)
        group_info = json.loads(html.text)
        # print(group_info)
        return group_info['join']
Exemple #6
0
    def get_delete_friend_in_360day(self):

        # 获取最近一年删除的好友名单
        # 需要提交的数据
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        qq_number = str(self.qq_number)
        skey = str(self.cookies_merge_dict_in_qun_qq_com['skey'])
        url = 'https://proxy.vip.qq.com/cgi-bin/srfentry.fcgi?bkn=' + str(
            bkn
        ) + '&ts=&g_tk=' + str(
            bkn
        ) + '&data={"11053":{"iAppId":1,"iKeyType":1,"sClientIp":"","sSessionKey":"' + skey + '","sUin":"' + qq_number + '"}}'

        # 设置请求头,模拟人工
        header = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
            'Accept-Encoding': 'gzip, deflate',
            'Referer': 'https://huifu.qq.com/recovery/index.html?frag=1',
            'Origin': 'https://huifu.qq.com',
            'Connection': 'close'
        }

        # 屏蔽https证书警告
        requests.packages.urllib3.disable_warnings()
        # 网页访问,post方式
        html = requests.get(url,
                            cookies=self.cookies_merge_dict_in_qun_qq_com,
                            headers=header,
                            verify=False)

        # 将返回数据解析为python对象
        result = json.loads(html.text)
        # print(result)

        # 364天内没有删除的好友
        delFriendList = result['11053']['data']['delFriendList']
        if (len(delFriendList) == 0):
            return {}

        # 364天内有删除的好友
        qq_number_list = delFriendList['364']['vecUin']

        # 返回364天内的被删除的好友名单
        return qq_number_list
Exemple #7
0
    def is_vip_svip(self):
        # 判断此次登录的qq是否为vip或者svip
        # 需要提交的数据
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict_in_qun_qq_com['skey'])
        qq_number = str(self.qq_number)
        skey = str(self.cookies_merge_dict_in_qun_qq_com['skey'])
        url = 'https://proxy.vip.qq.com/cgi-bin/srfentry.fcgi?bkn=' + str(
            bkn
        ) + '&ts=&g_tk=' + str(
            bkn
        ) + '&data={"11053":{"iAppId":1,"iKeyType":1,"sClientIp":"","sSessionKey":"' + skey + '","sUin":"' + qq_number + '"}}'

        # 设置请求头,模拟人工
        header = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
            'Accept-Encoding': 'gzip, deflate',
            'Referer': 'https://huifu.qq.com/recovery/index.html?frag=1',
            'Origin': 'https://huifu.qq.com',
            'Connection': 'close'
        }

        # 屏蔽https证书警告
        requests.packages.urllib3.disable_warnings()
        # 网页访问,post方式
        html = requests.get(url,
                            cookies=self.cookies_merge_dict_in_qun_qq_com,
                            headers=header,
                            verify=False)

        # 将返回数据解析为python对象
        result = json.loads(html.text)
        isSvip = result['11053']['data']['isSvip']
        isVip = result['11053']['data']['isVip']
        return {'isSvip': isSvip, 'isVip': isVip}
    def get_members_in_group(self, group_number):

        # 获取某个群的群成员
        # bkn由参数skey通过另一个加密函数得到
        bkn = hash33_bkn(self.cookies_merge_dict['skey'])

        # 由于接口限制每次最多获取20个成员的信息,所以我们先获取一遍,得到群成员的数量,再在后面重复获取几次
        submit_data = {
            'gc': group_number,
            'st': '0',
            'end': '0',
            'sort': '0',
            'bkn': bkn,
        }
        html = post_html(
            'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members',
            self.cookies_merge_dict, submit_data)
        group_member = json.loads(html.text)
        group_count = group_member['count']
        # print(group_count)

        now_count = 0
        members_in_group_list = []
        while (now_count <= group_count):
            if (now_count <= group_count - 20):
                submit_data = {
                    'gc': group_number,
                    'st': str(now_count),
                    'end': str(now_count + 20),
                    'sort': '0',
                    'bkn': bkn,
                }
                html = post_html(
                    'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members',
                    self.cookies_merge_dict, submit_data)
                group_member = json.loads(html.text)
                # print('end_count:{}'.format(now_count+20))
                # print(group_member['mems'])
                #将群成员数据合并到原有的列表中
                members_in_group_list += group_member['mems']
                now_count += 20
            else:
                submit_data = {
                    'gc': group_number,
                    'st': str(now_count),
                    'end': str(group_count),
                    'sort': '0',
                    'bkn': bkn,
                }
                html = post_html(
                    'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members',
                    self.cookies_merge_dict, submit_data)
                group_member = json.loads(html.text)
                # print('end_count:{}'.format(group_count))
                # print(group_member['mems'])
                #将群成员数据合并到原有的列表中
                members_in_group_list += group_member['mems']
                now_count += 20

            print(members_in_group_list)
            time.sleep(2)

        # 对得到的群成员列表进行去重操作
        tmp_list = []
        for member in members_in_group_list:
            if member not in tmp_list:
                tmp_list.append(member)

        members_in_group_list = tmp_list
        return members_in_group_list