前言
用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: 0
end: 20
sort: 0
bkn: 自己抓包获取
参数:
gc: 自己抓包获取
st: 21
end: 41
sort: 0
bkn: 自己抓包获取
二、代码
我们已经知道了数据页数变化的规律,现在我们来实现其代码的操作
首先写一个函数用于生成Params并传入列表中
def Params_list(self):
Params_list=[]
for i in range(96):
st=i*20+i
end=st+20
params={
"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群”获取
谢谢大家的观看
转载请标明出处