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

#coding:utf8

importrequestsimportjsonfrom collections importCounterfrom pyecharts importPieimporthashlib#微信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=[]defSexFun(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 方法

defWechar_data(Wxurl,headers):global Province #转换为全局变量,假如不转换的话,会报错的

globalCountcityglobalsexsglobalHeadImgUrls

list_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))48

for iii inrange(0,len(countProvin)):#print(countProvin[iii])

Countcity.append(rest[countProvin[iii]])#print(Countcity) # num list

try:

countProvin[0]="暂未填写地区"

exceptException: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)defHeadimgFun(imgdata,headers):#print(imgdata[0])

md = hashlib.md5() #构造一个md5

for i inrange(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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值