#               http://q4.qlogo.cn/g?b=qq&nk=1049328922&s=140 #这个是获取头像的url#               1、请求qq群的接口,实现传入一个群号#               2、把群里每个人的 昵称、群备注、入群时间、qq号,性别,存到redis里面,用hash类型#                 {"qq_num":511402865,"nick":"午夜之魂","card":"午夜之魂","gender":"男","入群时间":"2017-01-03"}#               3、把每个人的头像下载下来保存到本地,牛牛.jpg#               4、把昵称、群备注、入群时间、qq号,性别这些信息写到excel里面#               5、把excel当做附件发到我的邮箱里面。

import jsonimport os

import requests,redis,xlwt,yagmail,time

def getData():  #获取群接口的信息    url = 'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'    data = {        'gc': 921144696,        'st': 0,        'end': 20,        'sort': 0,        'bkn': 341160307    }    headers = {'cookie':'RK=JQZpwBp1by; ptcz=6c30e26a9ed6be93d3de9e4c4aca3e55650cf99fcffa64729bd1d58a5fb209d9; pgv_pvi=779236352; pgv_pvid=6970909788; qb_qua=; qb_guid=818de686e29d412fa4ee9e99905ea166; Q-H5-GUID=818de686e29d412fa4ee9e99905ea166; NetType=; o_cookie=511402865; pac_uid=1_511402865; uin=o0511402865; ptisp=cnc; pgv_si=s3027380224; p_uin=o0511402865; traceid=a5329de24a; pgv_info=ssid=s9247410675; skey=@q9o11HspH; pt4_token=RnDTPQBuS*GfBBan7f7Kr1zwMrATa5NLuxnm*PATgNc_; p_skey=la4BrvIKFjioohQ0VaokxhOb4aZTXeIoOiZNaiDMGss_'}    req = requests.post(url,data,headers=headers,verify=False )    return req.json()

def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'):    '''时间戳转格式化好的时间,如果没有传时间戳,就获取当前的格式化时间'''    if timestamp:        time_tuple = time.localtime(timestamp) #把时间戳转成时间元组        result = time.strftime(format,time_tuple) #把时间元组转成格式化好的时间        return result    else:        return time.strftime(format)

def covert_gender(g):    if g==0:        return '男'    elif g==1:        return '女'    return '未知'

def filterData(data):    result = []#存放每个用户的信息    mem_data = data.get('mems')    titles = ['uin','join_time','card','g','nick']    for mem in mem_data:        d = {}        for t in titles:            val = mem.get(t)            if t == 'join_time':  # 转换加入时间                val = timestamp_to_str(val)            if t == 'g':  # 转换性别                val = covert_gender(val)            d[t] = val        result.append(d)    return result

def writeExecl(data,excel_name):    book = xlwt.Workbook()    sheet = book.add_sheet('sheet1')    titles = ['uin','join_time','card','g','nick']    for col,value in enumerate(titles,0):#写表头        sheet.write(0,col,value)    for row,mem in enumerate(data,1):        for col,value in enumerate(titles,0):   #因为lie 是固定的,所以直接使用表头当key就可以了。            val = mem.get(value)            sheet.write(row,col,val) #写内容    book.save(excel_name)    print('excel写入文件')

def  saveRedis(data,key):    host = '118.24.3.40'    passwd = 'HK139bc&*'    r = redis.Redis(host=host, password=passwd, db=15, decode_responses=True)  # 0-15    p = r.pipeline()    for d in data:        p.hset(key,d.get('uin'),json.dumps(d,ensure_ascii=False))    p.execute()    print('redis写入完成!')

def downLoadPic(data):    url = 'http://q4.qlogo.cn/g?b=qq&nk=%s&s=140'    if not os.path.exists('pics'):        os.mkdir('pics')    for d in data:        uid = d.get('uin')        content = requests.get(url%uid).content        with open('pics/%s.jpg'%d.get('nick'),'wb') as fw:            fw.write(content)    print('图片下载完成')

def sendmMail(file_name):    user = 'uitestp4p@163.com'    passwd = 'houyafan123'  # 授权码    smtp_host = 'smtp.163.com'    mail = yagmail.SMTP(user=user, password=passwd, host=smtp_host)  # 连上邮箱    mail.send(to=['511402865@qq.com', '2351259957@qq.com', '1219841454@qq.com'],              cc=['gaomq@fadada.com', 'cindylpp2005@163.com', '460927455@qq.com'],              subject='qq群信息',              contents='明天多吃点,吃的饱饱的,在家睡个懒觉',              attachments=[file_name]              )    print('邮件发送完成!')

def main():    data = getData()    new_data = filterData(data)    writeExecl(new_data,'szz.xls')    saveRedis(new_data,'szz_stu')    downLoadPic(new_data)    sendmMail('szz.xls')    print('done!')

if __name__ == '__main__':    main()

转载于:https://www.cnblogs.com/skyxiuli/p/10885419.html

获取QQ信息导入execl、存redis、下载头像相关推荐

  1. php通过QQ号获取QQ信息,通过openId能获取到QQ号码吗?

    我在PHP里已经成功获取到QQ的openId,请问能通过openId获取到QQ号码吗?如果能,请问怎么获取? 回复讨论(解决方案) 应该是不可以,我之前也没找到这个接口 跟微信平台一样只能得到昵称头像 ...

  2. EXECL导入(检查服务器版本.包括NPOI方式导入.可以通过配置文件信息导入EXECL)代码记录下....

    在工作中很多要把EXECL的数据取出来的情况,因此,写一个相对通用的这种功能类很有必要.我因为当时只考虑了引用MS的EXECL类的情况,所以后面加入NPOI时这个类就有点显乱了,因为已经有人在用了,只 ...

  3. QQ登陆,获取QQ用户信息

    一.登陆QQ互联,创建网站应用or移动应用 地址:http://connect.qq.com/ 1.获取appid和app key 2.设置网站地址和回调地址,注:回调地址是用户在网页中登陆QQ后,导 ...

  4. php获取qq昵称2,通过QQ获取昵称资料

    第一步.我们要确认模板是否有加载jquery emlog默认jquery代码如下(放入之间),如果有加载的请自动忽略此步. 第二步.找到模板文件module.php中的 在上面代码的后面加入代码 然后 ...

  5. (获取qq群成员信息,并下载头像,每个群保存一个文件夹)

    # 1.获取到自己qq里面所有的群,并且保存每个群里面的群成员信息到mongodb里面# 下载每个群的群成员的头像# 1.抓包,抓到获取自己所有qq群的接口 requests模块 https://qu ...

  6. Android之QQ授权登录获取用户信息

    有时候我们开发的app需要方便用户简单登录,可以让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下如何在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...

  7. 小程序获取用户信息 php发送数据库,qq小程序如何获取用户信息并存入数据库实例...

    今天给大家带来qq小程序如何获取用户信息并存入数据库的实例,希望能够帮助到大家,让大家不仅知道如何下载qq小程序源码,还能懂得去何用,如何去改,甚至是如何去创造,如果你有好的qq小程序源码出售,可以联 ...

  8. Android第三方QQ登录、获取个人信息、分享实现

    昨天调试了一下午终于成功 第三方QQ登录.获取个人信息,分享 QQ官方API文档写的太乱 并且很多地方没有更新 这里总结一下 方便记录和回看 实现结果图 首先进入腾讯开放平台 下载QQ的SDK 地址 ...

  9. python模拟登录qq获取好友信息_使用Python模拟登录QQ邮箱获取QQ好友列表

    最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表. 实现方式: 通过google一搜,实现的方式大 ...

最新文章

  1. UNIX--stat、fstat和lstat函数
  2. 为什么很多人说 Java 不适合编写桌面应用?
  3. (转)理解MySQL——索引与优化
  4. 浅谈Spring注解
  5. Error response from daemon:###unable to delete ### (must be forced) - image is being used by stopped
  6. sql string转number_少用 string.Format
  7. 利用python语言实现帧差法,python+opencv实现帧差法
  8. CentOS搭建git服务器实测
  9. 【MATLAB】MATLAB 2017A 软件安装
  10. K8S coreDNS部署及简单验证
  11. 赋能未来的昆腾全新Scalar存储平台
  12. 亲测Trimble X7三维扫描仪
  13. 股票大作手回忆录投机感悟
  14. 明翰豆瓣列表V1.5(持续更新)
  15. 图文详解 | 万用表的使用与口诀!十足干货,不要错过!
  16. 几种常用的差异分析方法简介
  17. 组态王安装error_组态王常见问题的解决方法
  18. 魅族20pro参数配置 魅族20pro值得买吗
  19. NOIP2014P4 子矩阵 题解
  20. Linux系统查看FC HBA卡信息的方法

热门文章

  1. 超级干货 :最全算法学习资源汇总(附链接)
  2. 查找 对比 两个文件之间的相同部分 的俩种解决方式
  3. 算法导论习题,思考题题解博主录
  4. 人脸识别——脸部属性辅助(属性引导triplet loss)
  5. 学习日记——腾讯云物联网平台
  6. 高级UX设计引起用户共鸣的4个常用技巧
  7. qemu unexpectedly closed the monitor,Could not open ‘/home/aw/test/centos7.6.qcos2‘: Permission deni
  8. pear 安装工具包
  9. 自定义View、画波浪线
  10. crack翻译成中文_crack是什么意思中文翻译