Python爬微信好友头像,性别,所在地区

本文适合新手(有一定基础的小白)

今天没事,用的网页版微信,于是看源码心理作怪,F12打开,研究了一下,结果发现

/斜眼笑/斜眼笑/斜眼笑

再加上,没事干,(大家有好工作求介绍,本人待就业),Python也很久没弄了,于是(说干就干)

打开Python

import   requests
import  json
from collections import Counter
from pyecharts import Pie
import hashlib

这里是所要用到的库文件

我们想说思路

第一步,获取Url数据

第二步,看看是不是反爬

第三步,取出数据研究类型

第四步 ,筛选数据,统计图表

第五步,图片下载


第一 获取Url

貌似这里有

第二步,看看防爬嘛(应该反爬,毕竟这么大的公司,所以,管他防不防,都加headers

headers = {'Cookie': ' ~自己的 ','Host': 'wx.qq.com','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/'}

第三步,得出数据

数据是这样的

dict1 = json.loads(list_data.text)print("%s: %s" % ("好友数" ,dict1["MemberCount"]))  #字典listdata=dict1["MemberList"]  # 集合
 
    for  lists  in  range(0,dict1["MemberCount"]):  # 把全部用户的地址存储HeadImgUrls.append(listdata[lists]["HeadImgUrl"])sexs.append(listdata[lists]["Sex"])Province.append(listdata[lists]["Province"]+""+listdata[lists]["City"])rest=Counter(Province)   #这里是分组

第四步 ,筛选数据,统计图表

    pie = Pie("微信好友用户统计:好友%s" %( +dict1["MemberCount"]), title_pos='center',width=1400,height=600)pie.add("",countProvin,Countcity,radius=[40, 75],label_text_color=None,is_label_show=True,legend_orient="vertical",legend_pos="left",)pie.render()

未知是公众号

因为数据是 1为男, 2为女  0为公众号

数据显示这里我也不知道怎么讲,可以去看文档

http://pyecharts.org/#/zh-cn/charts_configure

第五步,图片下载

获取图片地址。。。

然后下载

代码

# coding:utf8
import   requests
import  json
from collections import Counter
from pyecharts import Pie
import hashlib
# 微信Url数据获取连接
Wxurl="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?lang=zh_CN&r=1551517351463&seq=0&skey=@crypt_80cc7620_ac3680d314a5860438086e5d54cf177d"
headers = { Cookie': 'cookie','Host': 'wx.qq.com','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36'}
#TODO  Province_City 使用到的数组集合
Province = []
Countcity=[]
#TODO  存储性别
sexs=[]
#TODO  存储图片
HeadImgUrls=[]
def SexFun(Sexrests):# 性别方法print("男%s" % Sexrests[1])print("女%s" % Sexrests[2])print("公众号%s" % Sexrests[0])pie = Pie("微信好友性别统计" , title_pos='center', width=1400, height=600)pie.add("",['男','女','未知'],[Sexrests[1],Sexrests[2],Sexrests[0]],radius=[40, 75],title='sex',label_text_color=None,is_label_show=True,legend_orient="vertical",legend_pos="left",)pie.render('sex.html')print(Sexrests)
#TODO  Wechar_data  方法
def Wechar_data(Wxurl,headers):global  Province   # 转换为全局变量,假如不转换的话,会报错的global  Countcityglobal sexsglobal HeadImgUrlslist_data = requests.get(Wxurl,headers=headers)list_data.encoding = "utf-8"print(list_data.text)dict1 = json.loads(list_data.text)print("%s: %s" % ("好友数" ,dict1["MemberCount"]))  #字典listdata=dict1["MemberList"]  # 集合#print(listdata)for  lists  in  range(0,dict1["MemberCount"]):  # 把全部用户的地址存储HeadImgUrls.append(listdata[lists]["HeadImgUrl"])sexs.append(listdata[lists]["Sex"])Province.append(listdata[lists]["Province"]+""+listdata[lists]["City"])rest=Counter(Province)   #这里是分组#print(rest)"""Counter({'': 29, '湖南郴州': 21, '湖南长沙': 16, '广东深圳': 14, '广东中山': 9, '广东广州': 8, '北京朝阳': 7, '湖南娄底': 4, '湖南怀化': 4, '北京海淀': 3, '湖南益阳': 3, '上海浦东新区': 3, '安徽合肥': 2, '北京西城': 2, '广东佛山': 2, '广东湛江': 2, '湖南株洲': 2, '浙江杭州': 1, '北京东城': 1, '广东': 1, '四川德阳': 1, '辽宁丹东': 1, '河南三门峡': 1, '湖南张家界': 1, '广东肇庆': 1, '上海长宁': 1, '澳门路环岛': 1, '江苏': 1, '上海': 1, '湖南衡阳': 1, '河南南阳': 1, '湖南永州': 1, '北京': 1, 'North Shore': 1, '湖北恩施': 1, '湖南湘潭': 1, '湖南岳阳': 1, '湖南': 1, 'EnglandSheffield': 1, '湖南邵阳': 1, '湖北武汉': 1, '广东珠海': 1, 'Eastern': 1, '江西南昌': 1, 'SabahSemporna': 1, '四川成都': 1, '北京昌平': 1, '福建宁德': 1})"""sets = set(Province)countProvin = list(sets)#print(countProvin)  #city'''    ['', '河南三门峡', '河南南阳', '北京', '广东肇庆', '广东中山', '上海长宁', '湖南长沙', '广东佛山', '福建宁德', '广东深圳', '湖南娄底', '辽宁丹东', '浙江杭州', '湖北恩施', 'North Shore', '湖南', '北京昌平', '上海浦东新区', '澳门路环岛', '湖南株洲', '湖南邵阳', 'SabahSemporna', '广东广州', '湖南张家界', '湖南衡阳', '湖南永州', '湖北武汉', '北京朝阳', '安徽合肥', '北京西城', '湖南岳阳', '广东', '北京东城', '江西南昌', '广东珠海', '四川德阳', '湖南郴州', '湖南益阳', 'EnglandSheffield', '四川成都', '广东湛江', '江苏', '湖南怀化', 'Eastern', '湖南湘潭', '上海', '北京海淀']'''#print(en(countProvin))48for  iii  in   range(0,len(countProvin)):#print(countProvin[iii])
        Countcity.append(rest[countProvin[iii]])#print(Countcity)  # num  listtry:countProvin[0]="暂未填写地区"except   Exception:print("登录授权已过期")pie = Pie("微信好友用户统计:好友%s" %( +dict1["MemberCount"]), title_pos='center',width=1400,height=600)pie.add("",countProvin,Countcity,radius=[40, 75],label_text_color=None,is_label_show=True,legend_orient="vertical",legend_pos="left",)pie.render()#性别判断Sexrests = Counter(sexs)  # 这里是分组#让代码看上去简单一点使用方法封装
    SexFun(Sexrests)HeadimgFun(HeadImgUrls,headers)
def HeadimgFun(imgdata,headers):#print(imgdata[0])md = hashlib.md5()  # 构造一个md5for i in range(0,len(imgdata)):utllist="https://wx.qq.com"+imgdata[i]reqs = requests.get(utllist,headers=headers)reqs.encoding = "utf-8"md.update(imgdata[i].encode())imgname=md.hexdigest()+".jpg"with  open('./images/'+imgname, 'wb') as  f:f.write(reqs.content)Wechar_data(Wxurl,headers)

demo

不懂可以问我,觉得好就点个赞哈

posted @ 2019-03-03 13:43 Cgrain 阅读( ...) 评论( ...) 编辑 收藏

Python爬微信好友头像,性别,所在地区相关推荐

  1. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  2. python表白代码照片墙-如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  3. python获取微信好友头像拼接“2020”

    python获取微信好友头像拼接"2020" 背景 思路 源码说明 背景 2019年的最后一天,心想马上就要跨年,大家都在总结和祝福,但是又不想随大流,打开微信,翻看着通讯录,突然 ...

  4. python—微信好友头像性别统计个性签名统计

    爬取微信好友头像&制作好友头像拼图 import itchat import os import random from PIL import Image import mathdef hea ...

  5. Python 制作微信好友头像图片墙

    代码涉及到的外部库: 1.wxpy,用于获取好友头像和下载头像 2.pillow,用于拼接头像 完整代码如下: # -*- coding: UTF-8 -*- from wxpy import * i ...

  6. 用python把微信好友头像拼成一张图

    首先需要用到三个库: wxpy库(用于获取好友头像然后下载). pillow库(用于拼接头像). pyinstaller库(用于打包python程序成exe文件) 这里我说一下创建虚拟环境的步骤: 我 ...

  7. 只需四步,让你成为朋友圈的焦点----Python制作微信好友头像墙

    今天带给大家一波实力干货,让你分分钟成为朋友圈的红人.焦点! 先来张效果图感受一下! 怎么样,是不是很爽! 链接在这↓ 链接:https://pan.baidu.com/s/1qhRkkLPLdZqE ...

  8. [533]python获取微信好友头像生成点阵图片

    首先是点阵字的概念:点阵字体是把每一个字符都分成 n * n 个点,然后用每个点的虚实来表示字符的轮廓.点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示. 汉字那么多,总不能每个字都去自己设 ...

  9. python读取微信好友头像,并把头像拼成一张大图

    文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼:我热爱编程.热爱算法.热爱开源.所有源码在我的个人github :这博客是记录我学习的点点滴滴,如果您对 Python.Java.AI ...

最新文章

  1. cn域名注册国外_国内cn域名注册量超com域名,“com”时代结束了吗?
  2. Wechat公众号授权登录接口
  3. wince 德赛西威2413_【图】GPS导航/Wince6.0系统 德赛西威迈腾车载导航改装评测_汽配中国网...
  4. linux tr命令完整,linux tr命令详解
  5. P4092-[HEOI2016/TJOI2016]树【线段树,倍增】
  6. ASP.NET简易教程3——SQL存储过程
  7. WCF学习之旅----基础篇之EnterpriseServices
  8. C语言练习——百钱百鸡
  9. CCNA培训视频教程下载
  10. 网站推广 seo优化 教程102条
  11. Git利用命令行提交代码步骤
  12. 插入导频法实现载波通信matlab,插入导频法.ppt
  13. pci串口驱动安装失败_PCI并口卡驱动安装不上
  14. UOJ #449. 【集训队作业2018】喂鸽子
  15. Windows 内存机制说明
  16. 8句极易踩中买家雷点的口头禅,你中了哪几条?
  17. Springboot之初入江湖
  18. 交换机-自动协商机制-auto-negotiation
  19. C++程序设计基础之(第三章)函数
  20. 计算机用户密码无法输入,电脑数字密码输入不了怎么办

热门文章

  1. 如何利用淘思精灵卖软件月入过万
  2. myeclipse jndi oracle,MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介
  3. 浙江财经大学计算机学院,第十四届省本科院校计算机系(学院)系主任(院长)论坛在我校举行...
  4. 已有image文件夹,创建image的标签文件夹(标签为txt形式)
  5. Java设计思想深究----多线程与并发(图文)
  6. Cocos2dx.3x入门三部曲-Hello Game项目解析(三)
  7. python3安装pymysql_python3中安装PyMySQL模块
  8. 均值滤波原理及matlab实现代码
  9. STM32TIM1输出两路PWM控制平衡车
  10. 图书管理系统之图书管理模块(六)