bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

利用python怎么對微信好友的信息進行分析-創新互聯

這期內容當中小編將會給大家帶來有關利用 python 怎么對微信好友的信息進行分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創新互聯公司云計算的互聯網服務提供商,擁有超過13年的服務器租用、德陽電信服務器托管、云服務器、虛擬空間、網站系統開發經驗,已先后獲得國家工業和信息化部頒發的互聯網數據中心業務許可證。專業提供云主機、虛擬空間、域名與空間、VPS主機、云服務器、香港云服務器、免備案服務器等。

1. 使用到的庫

① wxpy:初始化微信機器人

② openpyxl:保存微信好友數據為Excel表格

③ pyecharts:生成可視化的地圖

④ wordcloud、matplotlib、jieba:生成詞云圖

【特別提醒】:pyecharts 庫用的是0.5.x版本,而在 pip 中安裝的為1.x.x版本,因此需要自行到【官網】中下載。

2. 基本功能

① 分析微信好友數據

② 生成詞云圖

③ 生成地圖展示

3. 代碼實現


此處使用類來實現

(1) 導入模塊

# 導入模塊
from wxpy import Bot
import openpyxl
from pyecharts import Map
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba

(2) 初始化機器人和獲取微信好友的源信息

此處調用 Bot() 方法,需要掃碼登陸微信網頁版,后續操作才能進行。

def __init__(self, ToExcelFile="", ToCityFile="", ToMapProvinceFile="", ToMapCityFile=""):
  ''' 初始化機器人和其他參數 '''
  # 初始化機器人,需要掃碼
  self.bot = Bot()
  # 獲取我所有的微信好友信息 - 存儲基礎信息(未處理)
  self.allFriends_Info = self.bot.friends()
  # 我的微信好友個數
  self.allFriends_Num = len(self.allFriends_Info)
  # 保存微信好友信息的表格文件路徑(.xlsx)
  self.ExcelFile = ToExcelFile
  # 保存城市詞云圖的文件路徑(.png/.jpg)
  self.WCOfCityFile = ToCityFile
  # 保存省份地圖的文件路徑(.html)
  self.MapProvinceFile = ToMapProvinceFile
  # 其他可用參數
  self.MapCityFile = ToMapCityFile
  # 自動調用run方法,使得在實例化對象后自動運行其他函數
  self.run()

(3) 統計和處理微信好友的信息

除了列出的還有 個性簽名、頭像等其他屬性。

def getFriendsInfo(self):
  ''' 獲取微信好友的全部信息 '''
  # 存儲微信好友的信息(經過信息處理的)
  self.friendsInfo = []
  # 定義列標題
  self.infoTitle = ['NickName', 'RemarkName', 'Sex', 'Province', 'City']
  for aFriend in self.allFriends_Info:
    # 獲取昵稱
    NickName = aFriend.raw.get(self.infoTitle[0], None)
    # 獲取備注
    RemarkName = aFriend.raw.get(self.infoTitle[1], None)
    # 獲取性別
    Sex = {1:"男", 2:"女", 0:"其他"}.get(aFriend.raw.get(self.infoTitle[2], None), None)
    # 獲取省份
    Province = aFriend.raw.get(self.infoTitle[3], None)
    # 獲取城市
    City = aFriend.raw.get(self.infoTitle[4], None)
    lisTmp = [NickName, RemarkName, Sex, Province, City]
    self.friendsInfo.append(lisTmp)

(4) 保存微信好友的信息

在這保存為Excel表格,在代碼中插入表頭行,為了便于閱讀。

def saveFriendsInfoAsExcel(self, ExcelName):
  ''' 保存微信好友的信息到 Excel 表格中 '''
  # 生成openpyxl對象
  workbook = openpyxl.Workbook()
  # 激活表格
  sheet = workbook.active
  # 設置表格標題
  sheet.title = 'WeChatFriendsInfo'
  # 填充列標題到第一行
  for _ in range(len(self.infoTitle)):
    sheet.cell(row=1, column=_+1, value=self.infoTitle[_])
  # 填充微信好友信息,從第二行開始
  for i in range(self.allFriends_Num):
    for j in range(len(self.infoTitle)):
      sheet.cell(row=i+2, column=j+1, value=str(self.friendsInfo[i][j]))
  # 若文件名非空,則保存到該路徑下
  if ExcelName != "":
    workbook.save(ExcelName)
    print(">>> Save WeChat friends' information successfully!")

(5) 分析微信好友的信息

 def quiteAnalyzeFriendsInfo(self):
   ''' 分析數據,一步到位,直接了當 '''
   print(self.allFriends_Info.stats_text())

(6) 生成city詞云圖

def creatWordCloudOfCity(self, CityName):
  ''' 使用獲取的數據生成city詞云圖 '''
  # 獲取所有的城市
  cityStr = ""
  for i in range(self.allFriends_Num):
    if self.friendsInfo[i][4] not in cityStr:
      cityStr += " " + self.friendsInfo[i][4]
  #jieba庫精確模式分詞
  wordlist = jieba.lcut(cityStr)
  cityStr = ' '.join(wordlist)
  # 加載背景圖片
  #cloud_mask = np.array(Image.open(BackGroundFile))
  #設置詞云圖屬性
  font = r'C:\Windows\Fonts\simfang.ttf' # 設置字體路徑
  wc = WordCloud(
    background_color = 'black',   # 背景顏色
    #mask = cloud_mask,       # 背景圖片
    max_words = 100,        # 設置較大顯示的詞云數
    font_path = font,        # 設置字體形式(在本機系統中)
    height = 300,          # 圖片高度
    width = 600,          # 圖片寬度
    max_font_size = 100,      # 字體較大值
    random_state = 100,       # 配色方案的種類
    )
  # 生成詞云圖
  myword = wc.generate(cityStr)
  #展示詞云圖
  plt.imshow(myword)
  plt.axis('off')
  plt.show()
  # 若文件名非空,則保存到該路徑下
  if CityName != "":
    #保存詞云圖
    wc.to_file(CityName)
    print(">>> Creat WeChat wordcloud of city successfully!")

(7) 生成province地圖

def creatMapProvince(self, MapFile):
  ''' 使用獲取的數據生成province地圖 '''
  # 獲取所有省份
  provinceList, provinceNum = [], []
  for i in range(self.allFriends_Num):
    if self.friendsInfo[i][3] not in provinceList:
      provinceList.append(self.friendsInfo[i][3])
      provinceNum.append(0)
  for i in range(self.allFriends_Num):
    for j in range(len(provinceList)):
      if self.friendsInfo[i][3] == provinceList[j]:
        provinceNum[j] += 1
  # 生成 Map
  map = Map("各省微信好友分布", width=1000, height=800)
  map.add("", provinceList, provinceNum, maptype="china", is_visualmap=True, visual_text_color='#000')
  # 若文件名非空,則保存到該路徑下
  if MapFile != "":
    map.render(MapFile)
    print(">>> Creat WeChat Map of Provinces seccessfully!")

(8) 生成city地圖

def creatMapCity(self, MapFile):
    ''' 使用獲取的數據生成city地圖 '''
    # 獲取所有省份
    CityList, CityNum = [], []
    for i in range(self.allFriends_Num):
      if self.friendsInfo[i][4] not in CityList:
        CityList.append(self.friendsInfo[i][4])
        CityNum.append(0)
    for i in range(self.allFriends_Num):
      for j in range(len(CityList)):
        if self.friendsInfo[i][4] == CityList[j]:
          CityNum[j] += 1
    for i in range(len(CityList)):
      CityList[i] += '市'
    # 生成 Map
    map = Map("各市微信好友分布", width=1000, height=800)
    map.add("", CityList, CityNum, maptype="廣東", is_visualmap=True, visual_text_color='#000')
    # 若文件名非空,則保存到該路徑下
    if MapFile != "":
      map.render(MapFile)
      print(">>> Creat WeChat Map of Cities seccessfully!")

有了上述實現各個功能的方法,那么就差一個調用各種方法的方法了。

(9) run方法

def run(self):
  # 獲取微信好友信息
  self.getFriendsInfo()
  print(">>> Get WeChat friends' information successfully!")
  print(">>> Members:", self.allFriends_Num)
  # 保存微信好友信息
  self.saveFriendsInfoAsExcel(self.ExcelFile)
  # 分析微信好友信息
  self.quiteAnalyzeFriendsInfo()
  # 使用微信好友的 city 產生詞云圖
  self.creatWordCloudOfCity(self.WCOfCityFile)
  # 生成微信好友的 province 地圖
  self.creatMapProvince(self.MapProvinceFile)
  # 生成微信好友的 city 地圖
  self.creatMapCity(self.MapCityFile)

對于文件路徑,在main函數中傳遞即可。【注】:上述代碼都在類中,在此處結束,下面為main函數

if __name__ == "__main__":
  ToExcelFile = "./WeChatAnalyze//FriendsInfo.xlsx"   # 微信好友信息的Excel表格保存路徑
  ToPictureFile = "./WeChatAnalyze//CityWordCloud.png"  # 微信好友信息city詞云圖保存路徑
  ToMapFileProvince = "./WeChatAnalyze//WeChatProvinceMap.html" # 微信好友信息province地圖保存路徑
  ToMapFileCity = "./WeChatAnalyze//WeChatCityMap.html" # 微信好友信息city地圖保存路徑
  # WeChatRobot對象實例化
  robot = WeChatRobot(ToExcelFile, ToPictureFile, ToMapFileProvince, ToMapFileCity)

是不是覺得Main函數很簡短,哈哈,沒錯,就是這么簡!

接下來看看實現的效果吧!

>>> 這個是終端顯示效果

利用 python 怎么對微信好友的信息進行分析

>>> 這個是保存為Excel表格的內容

利用 python 怎么對微信好友的信息進行分析

 >>> 這個是微信好友各省的分布

利用 python 怎么對微信好友的信息進行分析

>>> 這個是微信好友各市的分布

利用 python 怎么對微信好友的信息進行分析

完整代碼

# -*- coding: utf-8 -*-
'''
This is a program which can analyze datas of WeChat friends.
@author: bpf
'''

# 導入模塊
from wxpy import Bot
import openpyxl
from pyecharts import Map
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba

class WeChatRobot:

  '''====================== 1. 獲取微信好友信息 ======================'''
  def __init__(self, ToExcelFile="", ToCityFile="", ToMapProvinceFile="", ToMapCityFile=""):
    ''' 初始化機器人和其他參數 '''
    # 初始化機器人,需要掃碼
    self.bot = Bot()
    # 獲取我所有的微信好友信息 - 存儲基礎信息(未處理)
    self.allFriends_Info = self.bot.friends()
    # 我的微信好友個數
    self.allFriends_Num = len(self.allFriends_Info)
    # 保存微信好友信息的表格文件路徑(.xlsx)
    self.ExcelFile = ToExcelFile
    # 保存城市詞云圖的文件路徑(.png/.jpg)
    self.WCOfCityFile = ToCityFile
    # 保存省份地圖的文件路徑(.html)
    self.MapProvinceFile = ToMapProvinceFile
    # 其他可用參數
    self.MapCityFile = ToMapCityFile
    # 自動調用run方法,使得在實例化對象后自動運行其他函數
    self.run()

  '''====================== 2. 統計微信好友信息 ======================'''
  def getFriendsInfo(self):
    ''' 獲取微信好友的全部信息 '''
    # 存儲微信好友的信息(經過信息處理的)
    self.friendsInfo = []
    # 定義列標題
    self.infoTitle = ['NickName', 'RemarkName', 'Sex', 'Province', 'City']
    for aFriend in self.allFriends_Info:
      # 獲取昵稱
      NickName = aFriend.raw.get(self.infoTitle[0], None)
      # 獲取備注
      RemarkName = aFriend.raw.get(self.infoTitle[1], None)
      # 獲取性別
      Sex = {1:"男", 2:"女", 0:"其他"}.get(aFriend.raw.get(self.infoTitle[2], None), None)
      # 獲取省份
      Province = aFriend.raw.get(self.infoTitle[3], None)
      # 獲取城市
      City = aFriend.raw.get(self.infoTitle[4], None)
      lisTmp = [NickName, RemarkName, Sex, Province, City]
      self.friendsInfo.append(lisTmp)

  '''====================== 3. 保存微信好友信息 ======================'''
  def saveFriendsInfoAsExcel(self, ExcelName):
    ''' 保存微信好友的信息到 Excel 表格中 '''
    # 生成openpyxl對象
    workbook = openpyxl.Workbook()
    # 激活表格
    sheet = workbook.active
    # 設置表格標題
    sheet.title = 'WeChatFriendsInfo'
    # 填充列標題到第一行
    for _ in range(len(self.infoTitle)):
      sheet.cell(row=1, column=_+1, value=self.infoTitle[_])
    # 填充微信好友信息,從第二行開始
    for i in range(self.allFriends_Num):
      for j in range(len(self.infoTitle)):
        sheet.cell(row=i+2, column=j+1, value=str(self.friendsInfo[i][j]))
    # 若文件名非空,則保存到該路徑下
    if ExcelName != "":
      workbook.save(ExcelName)
      print(">>> Save WeChat friends' information successfully!")

  '''====================== 4. 分析微信好友信息 ======================'''
  def quiteAnalyzeFriendsInfo(self):
    ''' 分析數據,一步到位,直接了當 '''
    print(self.allFriends_Info.stats_text())

  '''====================== 5. 產生city詞云圖 ======================'''
  def creatWordCloudOfCity(self, CityName):
    ''' 使用獲取的數據生成city詞云圖 '''
    # 獲取所有的城市
    cityStr = ""
    for i in range(self.allFriends_Num):
      if self.friendsInfo[i][4] not in cityStr:
        cityStr += " " + self.friendsInfo[i][4]
    #jieba庫精確模式分詞
    wordlist = jieba.lcut(cityStr)
    cityStr = ' '.join(wordlist)
    # 加載背景圖片
    #cloud_mask = np.array(Image.open(BackGroundFile))
    #設置詞云圖屬性
    font = r'C:\Windows\Fonts\simfang.ttf' # 設置字體路徑
    wc = WordCloud(
      background_color = 'black',   # 背景顏色
      #mask = cloud_mask,       # 背景圖片
      max_words = 100,        # 設置較大顯示的詞云數
      font_path = font,        # 設置字體形式(在本機系統中)
      height = 300,          # 圖片高度
      width = 600,          # 圖片寬度
      max_font_size = 100,      # 字體較大值
      random_state = 100,       # 配色方案的種類
      )
    # 生成詞云圖
    myword = wc.generate(cityStr)
    #展示詞云圖
    plt.imshow(myword)
    plt.axis('off')
    plt.show()
    # 若文件名非空,則保存到該路徑下
    if CityName != "":
      #保存詞云圖
      wc.to_file(CityName)
      print(">>> Creat WeChat wordcloud of city successfully!")

  '''===================== 6. 產生province地圖 ====================='''
  def creatMapProvince(self, MapFile):
    ''' 使用獲取的數據生成province地圖 '''
    # 獲取所有省份
    provinceList, provinceNum = [], []
    for i in range(self.allFriends_Num):
      if self.friendsInfo[i][3] not in provinceList:
        provinceList.append(self.friendsInfo[i][3])
        provinceNum.append(0)
    for i in range(self.allFriends_Num):
      for j in range(len(provinceList)):
        if self.friendsInfo[i][3] == provinceList[j]:
          provinceNum[j] += 1
    # 生成 Map
    map = Map("各省微信好友分布", width=1000, height=800)
    map.add("", provinceList, provinceNum, maptype="china", is_visualmap=True, visual_text_color='#000')
    # 若文件名非空,則保存到該路徑下
    if MapFile != "":
      #map.show_config()
      map.render(MapFile)
      print(">>> Creat WeChat Map of Provinces seccessfully!")

  '''===================== 7. 產生city地圖 ====================='''
  def creatMapCity(self, MapFile):
    ''' 使用獲取的數據生成city地圖 '''
    # 獲取所有省份
    CityList, CityNum = [], []
    for i in range(self.allFriends_Num):
      if self.friendsInfo[i][4] not in CityList:
        CityList.append(self.friendsInfo[i][4])
        CityNum.append(0)
    for i in range(self.allFriends_Num):
      for j in range(len(CityList)):
        if self.friendsInfo[i][4] == CityList[j]:
          CityNum[j] += 1
    for i in range(len(CityList)):
      CityList[i] += '市'
    # 生成 Map
    map = Map("各市微信好友分布", width=1000, height=800)
    map.add("", CityList, CityNum, maptype="廣東", is_visualmap=True, visual_text_color='#000')
    # 若文件名非空,則保存到該路徑下
    if MapFile != "":
      map.render(MapFile)
      print(">>> Creat WeChat Map of Cities seccessfully!")

  '''===================== 8. 自動執行函數 ====================='''
  def run(self):
    # 獲取微信好友信息
    self.getFriendsInfo()
    print(">>> Get WeChat friends' information successfully!")
    print(">>> Members:", self.allFriends_Num)
    # 保存微信好友信息
    self.saveFriendsInfoAsExcel(self.ExcelFile)
    # 分析微信好友信息
    self.quiteAnalyzeFriendsInfo()
    # 使用微信好友的 city 產生詞云圖
    self.creatWordCloudOfCity(self.WCOfCityFile)
    # 生成微信好友的 province 地圖
    self.creatMapProvince(self.MapProvinceFile)
    # 生成微信好友的 city 地圖
    self.creatMapCity(self.MapCityFile)

if __name__ == "__main__":
  ToExcelFile = "./WeChatAnalyze//FriendsInfo.xlsx"   # 微信好友信息的Excel表格保存路徑
  ToPictureFile = "./WeChatAnalyze//CityWordCloud.png"  # 微信好友信息city詞云圖保存路徑
  ToMapFileProvince = "./WeChatAnalyze//WeChatProvinceMap.html" # 微信好友信息province地圖保存路徑
  ToMapFileCity = "./WeChatAnalyze//WeChatCityMap.html" # 微信好友信息city地圖保存路徑
  # WeChatRobot對象實例化
  robot = WeChatRobot(ToExcelFile, ToPictureFile, ToMapFileProvince, ToMapFileCity)

上述就是小編為大家分享的利用 python 怎么對微信好友的信息進行分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

分享文章:利用python怎么對微信好友的信息進行分析-創新互聯
本文來源:http://vcdvsql.cn/article14/gijde.html

成都網站建設公司_創新互聯,為您提供網頁設計公司品牌網站建設微信小程序網站設計面包屑導航搜索引擎優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作