Python3如何爬取微信好友基本信息,并且进行数据清洗?下面跟着网连代理带来的教程,我们一起看看具体的操作要怎么实现。
1、登录获取好友基础信息:
好友的获取方法为get_friends,将会返回完整的好友列表。
其中每个好友为一个字典
列表的第一项为本人的账号信息
传入update键为True将可以更新好友列表并返回
'''
微信:
Date:20180918
Author:lizm
Description:爬取微信好友、公众号、群聊基本信息,并进行数据清洗
'''
import itchat
from pandas import DataFrame
import pandas as pd
import re
#1、登录(每次登录都要扫二维码)
itchat.login()
#登录(只需要扫码一次,第二次运行手机微信会弹出确认框)
#itchat.auto_login(hotReload=True)
#爬取自己好友相关信息,返回一个json文件
friends=itchat.get_friends(update=True)[0:]
#print(friends)
2、统计性别并图形展示(pyecharts)
#2、统计性别
#初始化计数器
male=female=other=0
#friends[0]是自己的信息,所以要从friends[1]开始
for i in friends[1:]:
sex=i["Sex"]
if sex==1:
male+=1
elif sex==2:
female+=1
else:
other+=1
#计算朋友总数
total=len(friends[1:])
#打印出自己的好友性别比例
print("男性好友:%.2f%%"%(float(male)/total*100)+"\n"+
"女性好友:%.2f%%"%(float(female)/total*100)+"\n"+
"不明性别好友:%.2f%%"%(float(other)/total*100))
#pyecharts图形
from pyecharts import Bar
bar=Bar("性别比例图","微信好友")
bar.add("性别",["男","女","未知"],[male,female,other])
bar.show_config()
bar.render()
3、将基本信息保存到csv
#3、将基本信息保存到csv
def filter_emoji(desstr,restr=''):
#过滤表情
try:
co=re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
co=re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
return co.sub(restr,desstr)
#定义一个函数,用来爬取各个变量
import emoji
def get_var(var):
variable=[]
for friend in friends:
value=friend[var]
if isinstance(value,str):
value=value.strip()
#value=emoji.demojize(value)
value=filter_emoji(value,'')
rep=re.compile("1f\d+\w*|[<>/=]")
value=rep.sub("",value)
rep1=re.compile("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~ #¥%……&*()]+")
value=rep1.sub('',value)
print("爬取数据[%s]>>>>:%s"%(var,value))
else:
pass
variable.append(value)
return variable
#调用函数得到各变量,并把数据存到csv文件中,保存到桌面
NickName=get_var("NickName")
Sex=get_var('Sex')
Province=get_var('Province')
City=get_var('City')
Signature=get_var('Signature')
data={'NickName':NickName,'Sex':Sex,'Province':Province,
'City':City,'Signature':Signature}
frame=DataFrame(data)
#windows下运行,需要转码,系统默认是gbk,需要手动设置;注意:utf-8还是乱码,得设置为utf-8-sig
frame.to_csv('data.csv',index=True,encoding='utf_8_sig')
进行到这里,我们的流程就已经完成一半了,还有两个关键步骤,我们在下一篇文章继续分析。
在日常生活中,我们平时上网可能会很少用到http代理IP,但在从事爬虫作中,用到http代理IP的机会就比较多了。http代理确实给我们的工作带来很多便利,也正因为如此,市面上的代理IP越来越多
代理服务器(Proxy Server)的工作原理是:当客户在浏览器中设置好Proxy Server后,你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的
JAVA是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言