头像源码_python实战:获取QQ群成员头像信息

抓取qq群成员的昵称,头像的步骤:

1、分析请求信息

2、使用python 库 获取qq 头像,qq 号,昵称

具体实施

打开https://qun.qq.com/member.html,这个url是qq群的网页管理版,可以选择一个你加入的一个qq群,看到所有成员的信息,然后选择一个qq群,在chrome 浏览器中打开调试工具,可以看到它是请求了一个search_group_members的接口,传入群号,返回了群里的一些成员信息

请求分析完,现在能获取到每个群成员的信息了,返回的mems这个list里面存的是所有qq成员的信息,每个信息是一个字典,nick这个是qq昵称,uin这个key是每个人的qq号。

通过上面的请求也拿到了获取头像的url,就是qq号不一样而已,https://q4.qlogo.cn/g?b=qq&nk=285958&s=140,nk这个是qq号,想获取谁的头像,换个qq号就可以,这个作为一个参数即可。

上面的分析已经完成后,知道了通过search_mems这个接口可以获取到所有群成员信息,还有下载qq头像的url

核心代码

def get_mems(self):        #发送post请求,获取到所有群成员信息        all_nicks=[]        for i in range(0,2000,20):            data='gc=%s&st=%s&end=%s&sort=0&bkn=1608777410'%(self.qq_num,i,i+self.mem_count)#这个是请求数据            m=self.Foma(data)            cookies={                'Cookie': 'pgv_pvi=9456217088; RK=XOrk2T7yZQ; ptcz=7beebe8cf154d2e2ae7a7b98b0096e1a2036807d0b54c90f91c0adb33c447abe; _ga=GA1.2.948016795.1591761068; pgv_pvid=3493788426; tvfe_boss_uuid=9d02bc06a2e45827; pac_uid=0_ca21ab9494274; pgv_info=ssid=s6535202992; verifysession=h011cc84b32bf461cc304c69dd9c7d7af60c33090379c028c336dcb331c1e62d68910e2319f29f71dd8; _qpsvr_localtk=0.43468354784382224; uin=o0280938995; skey=@N4M6aXiNH; p_uin=o0280938995; pt4_token=Y-BtrT2yzGgfFoYTpAymmNKqni3eU7lthSG1-WTuwD8_; p_skey=zHqc1n4O3kRWlHIAu*U0Uv9OozIYfcpDFWxNWChDNcw_;'            }#cookie信息,浏览器里面复制的            requests.packages.urllib3.disable_warnings()            res=requests.post(self.group_url,data=m,headers=cookies,verify=False).json()##发送post请求,传入cookie和data            print(res)            mems=res.get('mems')#mems这个key里面存的是一个list,所有的qq群成员在这里            if not os.path.isdir(self.dir_name):#判断这个群的文件夹是否存在,如果不存的话,创建                os.mkdir(self.dir_name)            for m in mems:                url='https://q4.qlogo.cn/g?b=qq&nk={}&s=140'.format(m.get('uin')) #通过替换qq号,生成每个qq成员的头像url                abs_path = os.path.join(self.dir_name, '%s.jpg' % m.get('uin'))  # 拼好每个图片的绝对路径,以qq号命名                # content这个在requests模块的博客里面说过了                nick_name = m.get('nick')  # 昵称                print('下载完成%s' % nick_name)  # 打印提示                all_nicks.append(nick_name)  # 把所有的昵称保存到一个list里面,用来做词云        return all_nicks  # 返回所有的昵称list

如需源码,后台回复,qqgroup 即可获取

a29d5db522b775851eabdb01f5e14e65.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值