python爬qq信息_微信好友信息如何python爬取?(上)

Python3如何爬取微信好友基本信息,并且进行数据清洗?下面跟着IP精灵带来的教程,我们一起看看具体的操作要怎么实现。

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')

进行到这里,我们的流程就已经完成一半了,还有两个关键步骤,我们在下一篇文章继续分析。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值