zoukankan      html  css  js  c++  java
  • Python使用笔记20--网络操作小练习

     1 '''
     2 2、自己抓取qq群的接口,传入一个群号,然后把群成员的头像下载到本地,头像用群备注来命名,如果没有
     3     群备注,那么取昵称。
     4 '''
     5 import requests
     6 import json
     7 import os
     8 import math
     9 #1.获取QQ群的详细信息,547488314
    10 def get_qq_qun(qun_id):
    11     st = 0
    12     count_num = 20
    13     if not os.path.exists(qun_id):#文件夹不存在,则创建文件夹
    14         create_dir(qun_id)
    15     result = get_qq_mems(st,count_num,qun_id)
    16     if result.get('ec')==0:#查询结果正常,则进行文件下载
    17         mems = result.get('mems')#获取群成员信息
    18         count = result.get('count')
    19         num = math.ceil(count / 20)
    20         if num - 1:
    21             for i in range(1, num):
    22                 result = get_qq_mems(i*20+1,(i+1)*20,qun_id)
    23                 mems.extend(result.get('mems'))
    24         print(mems)
    25         #遍历群人员
    26         for mem_value in mems:
    27             qq_id = mem_value.get('uin')#获取QQ号
    28             file_name = mem_value.get('card')#获取群昵称
    29             if not file_name:#如果没有设置群昵称,再去QQ名作为图片名称
    30                 file_name = mem_value.get('nick')#获取QQ名
    31             file_path = os.path.join(qun_id,file_name+'.jpg')
    32             download_file(qq_id,file_path)
    33     else:
    34         print('查询的群号不存在')
    35 
    36 #根据群号,生成一个文件夹
    37 def create_dir(qun_id):
    38     os.mkdir(qun_id)
    39 
    40 def get_qq_mems(st,end,qun_id):
    41     url = 'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'
    42     header = {
    43         'cookie': 'pgv_pvi=7783950336; pgv_pvid=8908705984; RK=x9TQxyyNRp; ptcz=d3d09a82f55c4d70013f0c76c2999c164031500b8ad8275f2cedc1ad7eb6f645; o_cookie=1123414020; traceid=6f6efca146; _qpsvr_localtk=0.005001799721190858; pgv_si=s4205858816; uin=o1123414020; skey=@XUs5S2laR; p_uin=o1123414020; pt4_token=B8-mX9kPLmZrpQL4p6S2rDtH4IfDGzXc9eBivmJ69wY_; p_skey=Kh3ON2RcyAF8VPN9Urrq5odRjKTsYtqxq7npoaGsciM_'}
    44     d = {'gc': qun_id, 'st': st, 'end': end, 'sort': 0, 'bkn': '1257936798'}
    45     req = requests.post(url, data=d, headers=header)
    46     return req.json()
    47 
    48 def download_file(qq_id,file_path):
    49     url = 'https://q4.qlogo.cn/g?b=qq&nk=%s&s=140'%qq_id
    50     req = requests.get(url)
    51     content = req.content
    52     file = open(file_path, 'wb')
    53     file.write(content)
    54     file.close()
    55 
    56 get_qq_qun('hjhkhkj')
  • 相关阅读:
    《Java并发编程实战》(五)---- 任务执行
    《Java并发编程实践》(四)---- 构建阻塞
    《Java并发编程实践》(三)---- 组合对象
    《Java8实战》(三)---- 重构测试和调试
    《Java核心技术》---- 多线程
    《Java并发编程实战》(二)---- 对象的共享
    《Java 8 实战》(三)---- 流
    《Java 8 实战》(二)—— Lambda
    《Java 8 实战》(一)——通过行为参数化传递代码
    Android_问卷调查
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/12968292.html
Copyright © 2011-2022 走看看