1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python爬微信头像_Python爬微信好友头像 性别 所在地区

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

时间:2019-05-17 22:34:41

相关推荐

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

#coding:utf8

importrequestsimportjsonfrom collections importCounterfrom pyecharts importPieimporthashlib#微信Url数据获取连接

Wxurl="/cgi-bin/mmwebwx-bin/webwxgetcontact?lang=zh_CN&r=1551517351463&seq=0&skey=@crypt_80cc7620_ac3680d314a5860438086e5d54cf177d"headers={

Cookie':'cookie',

'Host': '','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=""+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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。