import os
import jsonpath
import requests
def save_jpg(qun):
qun_url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members" # 群管理URL
qun_data = {"gc": qun, "st": 0, "end": 40, "sort": 0, "bkn": "1491271352"} # 群管理入参
qun_cookie = "pgv_pvid=6781060641; pgv_pvi=4527042560; tvfe_boss_uuid=bb0dca750dec4f2a; XWINDEXGREY=0; mobileUV=1_170385b99a4_66029; RK=KaTcs5izUF; ptcz=2f3ee47046a9f4fb82a1902934241112832a6aacc8597038c0b7cf22c8a16f7f; gr_user_id=e831cb87-4053-4ce9-9414-6f213bc38ccf; iip=0; o_cookie=549541889; pac_uid=1_549541889; pgv_info=ssid=s3437159700; p_uin=o0549541889; traceid=df6bbfca18; uin=o0549541889; skey=@CnueOIRTj; pt4_token=6uROIXsxEJ-eOz8xP7SyV7gPkhRuHVmE99Jy-MmDoaM_; p_skey=rbBpK9oZVcXDHfI5UGsjgXgWVNWIO8DpwOPiQ4ORa68_"
qun_members = requests.post(qun_url, qun_data, headers={"cookie": qun_cookie}).json() # 获取群接口返回的全部数据,并转成字典
uin = jsonpath.jsonpath(qun_members, "$..uin") # qq号
card = jsonpath.jsonpath(qun_members, "$..card") # 群备注名
nick = jsonpath.jsonpath(qun_members, "$..nick") # 网名
dir = os.path.join(os.getcwd(), str(qun)) # 用当前路径和群名,拼接存放图片的群名文件夹
if not os.path.exists(dir): # 判断文件夹是否已存在
os.mkdir(dir) # 创建文件夹
os.chdir(dir) # 跳转到该目录下
for i in range(len(uin)): # 遍历每个qq号,保存头像
member_url = "https://q4.qlogo.cn/g?b=qq&nk=%s&s=140" % uin[i] # 拼接头像照片的url
req = requests.get(member_url)
file_name = "%s.jpg" % nick[i] if card[i] == ‘‘ else "%s.jpg" % card[i] # 如果备注为空,网名为文件名;否则备注为文件名
with open(file_name, ‘wb‘) as fw: # 保存图片文件
fw.write(req.content)
if __name__ == ‘__main__‘:
save_jpg(65765969X) # 调用保存头像函数
Python jsonpath,requests 实战:保存qq 群所有人的头像照片
原文:https://www.cnblogs.com/zhangmeiyan/p/14378091.html