极品少妇一区二区三区精品视频,国内精品免费午夜毛片,亚洲欧美电影一区二区,麻豆一区二区

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

  • Python3爬蟲代碼怎么抓取微信好友基本信息,并且進行數據清洗? 我們一起看看具體的操作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) + " " +
    "女性好友: %.2f%%" % (float(female) / total * 100) + " " +
    "不明性別好友: %.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("1fd+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')

    這只是一部分代碼,還有一部分代碼請查看下一篇文章,主要代碼比較多放不下。

主站蜘蛛池模板: 平果县| 泽州县| 东乡县| 永嘉县| 磴口县| 搜索| 迭部县| 南丰县| 兴隆县| 革吉县| 万盛区| 左云县| 东平县| 台中县| 赞皇县| 潞城市| 屏南县| 平舆县| 上饶市| 绵阳市| 朝阳县| 沙湾县| 尼玛县| 丰城市| 松江区| 乌拉特后旗| 株洲市| 绥棱县| 罗源县| 哈巴河县| 武冈市| 专栏| 黄骅市| 松原市| 平遥县| 如东县| 固镇县| 汝州市| 桐庐县| 安化县| 乐安县|