出售本站【域名】【外链】

万仟 - 轻松建站从此开始!

微壹擎

当前位置: 微壹擎 > qq群控 > 文章页

爬虫笔记:抓取qq群成员的头像和昵称生成词云(十)

时间:2024-08-05 01:32来源: 作者:admin 点击: 3 次
爬虫实战:抓取某个qq群的所有群成员昵称、头像,然后把所有人的头像拼到一个图片里,所有人的昵称,生成一个词云图片 分析步骤: 1.分析qq群的请求 2.使用requests模块发送请求,下载qq头像 3.获取每个人的qq号,昵称 4.使用wordcloud模块生成昵称词云 5.使用pillow模块拼

爬虫真战:抓与某个qq群的所有群成员昵称、头像,而后把所有人的头像拼到一个图片里,所有人的昵称,生成一个词云图片

阐明轨范:

1.阐明qq群的乞求

2.运用requests模块发送乞求,下载qq头像

3.获与每个人的qq号,昵称

4.运用wordcloud模块生成昵称词云

5.运用pillow模块拼接头像

从第一步初步,先阐明下qq群的乞求,翻开hts://qun.qqss/member.html,那个url是qq群的网页打点版,可以选择一个你参预的任意一个qq群,看到所有成员的信息,而后选择一个qq群,抓包,可以看到它是乞求了一个search_group_members的接口,传入群号,返回了群里的一些成员信息

乞求头信息:

乞求阐明完,如今能获与到每个群成员的信息了,返回的mems那个list里面存的是所有qq成员的信息,每个信息是一个字典,nick那个是qq昵称,uin那个key是每个人的qq号。

通过上面的乞求也拿到了获与头像的url,便是qq号纷比方样罢了,hts://q4.qlogoss/g?b=qq&nk=498201529&s=140,nk那个是qq号,想获与谁的头像,换个qq号就可以了

用postman乞求一下那个搜寻接口,看下返回数据的格局,因为那个qq群打点的网页必须得登录威力看到群信息,所以挪用那个接口的时候,要传入cookie,所以间接从阅读器里面把cookie复制过来拿进去

url:hts://qun.qqss/cgi-bin/qun_mgr/search_group_members,post乞求,把headers里面的乞求数据拿过来

上面的阐明曾经完成为了,晓得了通过search_mems那个接口可以获与到所有群成员信息,另有下载qq头像的url。

import requests,random from os import listdir import os,re from PIL import Image import math from wordcloud import WordCloud import urllib3 class GenQQMem: group_url='hts://qun.qqss/cgi-bin/qun_mgr/search_group_members'#获与群信息的url,那里用类变质,因为他不会变 def __init__(self,qq_num,group_name='',mem_count=20): self.qq_num=qq_num #qq号码,那里绑定之后,下面就可以self运用了 self.mem_count=mem_count #成员数质,默许获与20个 self.dir_name=qq_num+'_'+group_name #那个是每个群的文件夹,用群号+群名字作文件夹的名字,寄存每个群里人的头像 def Foma(self,data):#将data格局变为字典格局 dic = {} dat = data.split('&') for d in dat: d = d.replace('=', ':') d1 = d.split(':')[0] dic[d1] = d.split(':')[1] return dic def get_mems(self): #那个函数用来下载所有的头像,获与所有的qq成员信息 #发送post乞求,获与到所有群成员信息 all_nicks=[] data='gc=%s&st=0&end=%s&sort=0&bkn=1828438990'%(self.qq_num,self.mem_count)#那个是乞求数据 m=self.Foma(data) cookies={ 'Cookie': 'RK=RbcWsEnLM7; pgZZZ_pZZZi=6162510848; pgZZZ_pZZZid=3721560373; ptcz=9798ef4a481b00be429978523f36bf55a8ba136786e163956f53cb68945e8da7; tZZZfe_boss_uuid=7a26071928349f48; o_cookie=812850788; pac_uid=1_812850788; ue_uk=a4af0d6184a86ae4166560709ba31783; ue_uid=fd661495567e1f0184368388fba401d9; LW_pid=7912f88bc83769398d43039a416e5e0e; ue_ts=1550902178; ue_skey=b4c59a1426e1fbd14b252af98ebfc643; ts_uid=1346166200; mobileUx=1_16edbcf6e4c_65bde; eas_sid=51K5D8g7N8A2U4P689I0y3I8s2; ptui_loginuin=812850788@qqss; _qpsZZZr_localtk=0.09521351065015837; pgZZZ_si=s2111662080; p_uin=o0812850788; traceid=45e74bd00a; uin=o0812850788; skey=@J6lLo0QoR; pt4_token=-MTXxLZZZdsPtkVrV1yHDddHI5tcCdP3jNmy9I6-L5wjw_; p_skey=79fRjcT2WHx5pKwkJsi*pwUrspinS7*NFuMbhro69Zo_' }#cookie信息,阅读器里面复制的 requests.packages.urllib3.disable_warnings() res=requests.post(self.group_url,data=m,headers=cookies,ZZZerify=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='hts://q4.qlogoss/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号定名 open(abs_path, 'wb').write(requests.get(url, ZZZerify=False).content) # 翻开文件,因为是图片,所以wb,二进制形式翻开 # content那个正在requests模块的博客里面说过了 nick_name = m.get('nick') # 昵称 print('下载完成【%s】' % nick_name) # 打印提示 all_nicks.append(nick_name) # 把所有的昵称保存到一个list里面,用来作词云 return all_nicks # 返回所有的昵称list def clear_nicks(self, nicks): return [re.sub('&.*?;', '', nick) for nick in nicks] # 因为有的人昵称里面有空格,空格是html标签 # 出来便是那样的 光荣  小猪 # 大概有大于号的便是那样的 天天>欢欣 # 那里用正则表达式,把&VV;那样的字符串都交换成空 def gen_wrodcloud(self, words): # 生成词云 words = ' '.join(words) # 传过来的是一个list,给变为字符串,每个名字用逗号离隔,因为每个昵称便是一个词语了,所以不用jieba分词了 wordcloud = WordCloud(width=1000, # 图片的宽度 height=860, # 高度 margin=2, # 边距 background_color='black', # 指定布景颜涩 font_path='C:\Windows\Fonts\Sitka Banner\msyh.ttc' # 指定字体文件,要有那个字体文件,原人等闲想用什么字体,就下载一个,而后指定途径就ok了 ) wordcloud.generate(words) # 分词 wordcloud.to_file(self.dir_name + '_' + 'wordcloud' + '.jpg') # 保存到图片 def gen_pic(self): # 拼接图片的函数,那个正在拼接图片这个博客里写有 user = self.dir_name pics = listdir(user) random.shuffle(pics) numPic = len(pics) size = 760 eachsize = int(math.sqrt(float(size * size) / numPic)) numline = int(size / eachsize) toImage = Image.new('RGBA', (size, size)) V = 0 y = 0 for i in pics: try: # 翻开图片 img = Image.open(user + "/" + i) eVcept IOError: print("Error: 没有找到文件或读与文件失败") else: # 缩小图片 img = img.resize((eachsize, eachsize), Image.ANTIALIAS) # 拼接图片 toImage.paste(img, (V * eachsize, y * eachsize)) V += 1 if V == numline: V = 0 y += 1 toImage.saZZZe(user + str(size) + ".png") def main(self): # 入口 all_nicks = self.get_mems() # 挪用获与获与成员信息、下载图片接口 all_nicks = self.clear_nicks(all_nicks) print(all_nicks) self.gen_wrodcloud(all_nicks) # 挪用生成词云函数 self.gen_pic() if __name__=='__main__': q = GenQQMem('202830590', 'jmeter')#真例化 q.main()#挪用

 同时那段代码显现的问题:1. 存正在一个cookie失效的问题,检验测验运用了selenium从头登录获与cookie,但是是运用扫描二维码登录,所以我也没有法子处置惩罚惩罚,假如有小同伴各处置惩罚惩罚法子,省事留言讲述我,万分感谢;2. 还存正在一个证书验证的设置问题,那个已处置惩罚惩罚:

import requests from requests.packages import urllib3 urllib3.disable_warnings() #从urllib3中打消正告 response = requests.get('hts://ss.12306ss',ZZZerify=False) #证书验证设为FALSE print(response.status_code) 打印结果:200

  附上执止完结后的两张图片:

(责任编辑:)

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-12-25 02:12 最后登录:2024-12-25 02:12
栏目列表
推荐内容
  • 会员介绍

    大部分资源在百度网盘、城通网盘,都是测试过,100%都可以解压,解压需要有一定的技术含量,有耐心完全可以看得懂,没有耐心、脾气暴躁的人,请勿购买,你怕麻烦,我也...

  • 蜜雪冰城新品因味道太像脚臭遭疯抢?大伙的XP别太离谱……

    不知道大家有没有发现,最近关于“奶茶”的热点事件好像都有点儿“上不了台面”。 就比如说,前段时间古茗换了一个葫芦样式的新Logo,结果因为外形太过“独...

  • 北大核心期刊投稿经验

    文章浏览阅读3.9k次,点赞3次,收藏16次。投稿记录,目标检测领域。_电光与控制投稿经验...

  • 视觉巡线小车(STM32+OpenMV)

    文章浏览阅读1.6k次,点赞9次,收藏18次。在现代机器人技术中,视觉巡线是一种常见的导航方式,它允许机器人通过识别和跟踪地面上的线路来自主导航。本文将总结使用...

  • 微信摇骰子表情包最全 【百科全说】

    微信摇骰子作弊表情包1到6点gif_微信摇骰子表情包最全 微信摇骰子表情包是小编为大家整理的最全微信摇骰子作弊表情包1到6点gif,和正的正常摇骰子是一样的,看...

  • 中法武汉生态示范城文化·体育活动中心

    武汉市中法武汉生态示范城文体中心项目...

  • 男子无聊建"恋丝袜爱高跟"QQ群?传播色情被批捕

    本题目:无聊建起QQ群 流传涩情被批捕 闲来无事建设QQ群,上传淫秽室频和图片供群员不雅寓目,还激劝其余群成员上传。群范围不停强大,人数近500名。近日,河北省...

  • QQ DiceBot: 创意无限的虚拟骰子机器人

    文章浏览阅读876次,点赞3次,收藏4次。QQ DiceBot: 创意无限的虚拟骰子机器人项目地址:https://gitcode.com/dynilath/q...

  • 双芯片+WM系统 HKC QQ全面配置低价亮相

    (中关村在线手机频道行情报道)2010年1月12日,HKCQQ(改版机)在商家“奥龙通讯”的最新价格是999元。该机的配置包括:单电单充、耳机、数据线、说明书。...

  • 躺着收钱!闲鱼自动发货机器人来啦~

    文章浏览阅读6.7k次,点赞2次,收藏28次。1目 标 场 景闲鱼上,很多卖家选择在平台上卖虚拟商品,大部分虚拟商品的交易方式都是通过网盘链接来完成交易。在很多...