前言

用Python爬取QQ群成员信息数据


提示:以下是本篇文章正文内容,下面案例可供参考

一、抓包

我们进入qun.qq.com登录自己的账号、选择一个群进入,打开抓包工具,向下滑动页面,可以抓到一个数据包 其中包含了20个成员的信息,有网名、QQ、发言时间等等

在这里插入图片描述
现在我们来观察他的url和所带参数 ,找到他的规律,我们可以看到参数中st和end应该就是表示的页数, 意思应该是从第21个到41个,至于gc、bkn应该表示的账号和群组,我们刷新页面抓取第一页的数据包 观察发现 gc、bkn、sort参数都没变,唯独st和end变了,可见st和end就是表示页数的关键

https://qun.qq.com/cgi-bin/qun_mgr/search_group_members参数:gc: 自己抓包获取st: 0end: 20sort: 0bkn: 自己抓包获取参数:gc: 自己抓包获取st: 21end: 41sort: 0bkn: 自己抓包获取

我们已经知道了数据页数变化的规律,现在我们来实现其代码的操作

首先写一个函数用于生成Params并传入列表中

def Params_list(self):Params_list=[]for i in range(96):st=i*20+iend=st+20params={"gc": 自己抓包获取,"st": st,"end": end,"sort": 0,"bkn": 自己抓包获取}Params_list.append(params)return Params_list

在写一个函数用于访问页面获取数据

def Get_Data(self,params):try:url="https://qun.qq.com/cgi-bin/qun_mgr/search_group_members"head={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36','COOKIE':'tvfe_boss_uuid=3eec8ab61924dc8d; pgv_pvid=5532717881; RK=CnIgT93OeT; ptcz=1a3ce7dF; traceid=5a73ddf726'}data=requests.get(url=url,headers=head,params=params).json()for da in data["mems"]:with open(".//QQ_Group.csv", "a+", encoding="utf-8") as f:writer = csv.DictWriter(f, da.keys())writer.writerow(da)except Exception as e:print(e)pass

最后有了params列表便可以传入Get_Data函数中获取数据

如果你对爬虫感兴趣,可看我主页已经更新多个爬虫项目、所有爬虫项目代码均在公众号“阿虚学Python”中,本次源码回复“QQ群”获取

在这里插入图片描述
谢谢大家的观看