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')
Python使用笔记20--网络操作小练习的更多相关文章
- Python学习笔记 - day5 - 文件操作
Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...
- Python学习笔记012_网络_异常
1,Python如何访问互联网? url + lib = urllib >>> # 使用urllib包下的request模块 >>> >>> i ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python学习笔记11 ----网络编程
网络编程 网络编程需要知道的概念 网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. ...
- Python学习笔记-Day3-set集合操作
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Python学习笔记20:server先进
我们不依赖于一个框架,CGI如果是,只能使用socket介面.他完成了一个可以处理HTTP要求Pythonserver. 基于,不管是什么的计算机的操作系统(推荐Linux)和Python该计算机可被 ...
- python学习笔记10 ----网络编程
网络编程 网络编程需要知道的概念 网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. ...
- python学习笔记:网络请求——urllib模块
python操作网络,也就是打开一个网站,或者请求一个http接口,可以使用urllib模块.urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模 ...
随机推荐
- 『动善时』JMeter基础 — 36、JMeter接口关联【正则表达式提取器】
目录 1.正则表达式提取器介绍 2.正则表达式提取器界面详解 3.正则表达式提取器的使用 (1)测试计划内包含的元件 (2)请求一界面内容 (3)正则表达式提取器界面内容 (4)请求二界面内容 (5) ...
- TinyML-TVM如何驯服TinyML
TinyML-TVM如何驯服TinyML 低成本,以人工智能为动力的消费类设备的激增,导致机器学习研究人员和从业人员对"裸机"(低功耗,通常没有操作系统)设备产生了广泛的兴趣.尽管 ...
- HiCar SDK概述
HiCar SDK概述 HUAWEI HiCar SDK 是 HUAWEI HiCar(以下简称 HiCar )为汽车硬件设备提供的软件开发工具包,为汽车硬件厂商接入 HiCar 提供应用 API 接 ...
- Minkowski坐标管理
Minkowski坐标管理 坐标键 classMinkowskiEngine.CoordsKey(D) __init__(D) 初始化self. See help(type(self))有关准确的签名 ...
- 基于ARM Cortex-M的SoC存储体系结构和实战
基于ARM Cortex-M的SoC存储体系结构和实战 System on Chip Architecture Tutorial Memory Architecture for ARM Cortex- ...
- 从“信息化”到“智慧化”,GVS视声将如何赋能智慧医院?
4月23日-25日,2021年中华医院信息网络大会(CHINC)盛大举办,今年首次携手中国医院建筑与装备创新发展大会,同期同地亮相杭州国际博览中心,塑造了全新的"双引擎"品牌盛会. ...
- Git_远程仓库fork操作
fork操作:当选择 fork,相当于自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步. 使用场景:一般来说,不需要使用 fork ...
- 【问题记录】—SignalR连接断线重连
起因: ASP.NET Core SignalR是一个开源库,可简化向应用添加实时 SignalR Web 功能. 实时 Web 功能使服务器端代码能够立即将内容推送到客户端.(相信大家都用得比较多了 ...
- 692. 前K个高频单词
2021-05-20 LeetCode每日一题 链接:https://leetcode-cn.com/problems/top-k-frequent-words/ 标签:堆.字典序.哈希表 题目 给一 ...
- Spring事务管理详解
事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用 ...