<listing id="fdftx"></listing>

        <address id="fdftx"></address>
        <address id="fdftx"><address id="fdftx"><nobr id="fdftx"></nobr></address></address>
        <address id="fdftx"><listing id="fdftx"><nobr id="fdftx"></nobr></listing></address>

        <address id="fdftx"><nobr id="fdftx"><meter id="fdftx"></meter></nobr></address><address id="fdftx"><th id="fdftx"><progress id="fdftx"></progress></th></address>

          [使用案例]python如何爬取微信好友信息?(上)

          發布時間:2020-05-25 關注熱度:°C

            Python3如何爬取微信好友基本信息,并且進行數據清洗?下面跟著IP海帶來的教程,我們一起看看具體的操作要怎么實現。

          微信好友信息如何python爬取

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

            進行到這里,我們的流程就已經完成一半了,還有兩個關鍵步驟,我們在下一篇文章繼續分析。

           

          版權聲明:本文為IP海(iphai.cn)原創作品,未經許可,禁止轉載!

          Copyright © www.skldkt.com. All Rights Reserved. IP海 版權所有.
          IP海僅提供中國內IP加速服務,無法跨境聯網,用戶應遵守《服務條款》內容,嚴禁用戶使用IP海從事任何違法犯罪行為。
          ICP備案鄂ICP備19030659號-3 公安備案鄂公網安備42100302000141號 計算機軟件著作權證計算機軟件著作權證 ICP/EDI許可證ICP/EDI許可證:鄂B2-20200106

          微信掃一掃咨詢
          国产福利第一页