欧美成a人片在线观看久,久久久久亚洲av无码专区桃色,久久久婷婷五月亚洲97号色,久久亚洲中文字幕精品一区,另类av

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

發(fā)布時(shí)間:2020-05-25 關(guān)注熱度:°C

  Python3如何爬取微信好友基本信息,并且進(jìn)行數(shù)據(jù)清洗?下面跟著IP海帶來(lái)的教程,我們一起看看具體的操作要怎么實(shí)現(xiàn)。

微信好友信息如何python爬取

  1、登錄獲取好友基礎(chǔ)信息:

  好友的獲取方法為get_friends,將會(huì)返回完整的好友列表。

  其中每個(gè)好友為一個(gè)字典

  列表的第一項(xiàng)為本人的賬號(hào)信息

  傳入update鍵為T(mén)rue將可以更新好友列表并返回

  '''

  微信:

  Date:20180918

  Author:lizm

  Description:爬取微信好友、公眾號(hào)、群聊基本信息,并進(jìn)行數(shù)據(jù)清洗

  '''

  import itchat

  from pandas import DataFrame

  import pandas as pd

  import re

  #1、登錄(每次登錄都要掃二維碼)

  itchat.login()

  #登錄(只需要掃碼一次,第二次運(yùn)行手機(jī)微信會(huì)彈出確認(rèn)框)

  #itchat.auto_login(hotReload=True)

  #爬取自己好友相關(guān)信息, 返回一個(gè)json文件

  friends = itchat.get_friends(update=True)[0:]

  #print(friends)

  2、統(tǒng)計(jì)性別并圖形展示(pyecharts)

  #2、統(tǒng)計(jì)性別

  #初始化計(jì)數(shù)器

  male = female = other = 0

  #friends[0]是自己的信息,所以要從friends[1]開(kāi)始

  for i in friends[1:]:

  sex = i["Sex"]

  if sex == 1:

  male += 1

  elif sex == 2:

  female += 1

  else:

  other +=1

  #計(jì)算朋友總數(shù)

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

  #過(guò)濾表情

  try:

  co = re.compile(u'[U00010000-U0010ffff]')

  except re.error:

  co = re.compile(u'[uD800-uDBFF][uDC00-uDFFF]')

  return co.sub(restr, desstr)

  #定義一個(gè)函數(shù),用來(lái)爬取各個(gè)變量

  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("爬取數(shù)據(jù)[%s]>>>>:%s" %(var,value))

  else:

  pass

  variable.append(value)

  return variable

  #調(diào)用函數(shù)得到各變量,并把數(shù)據(jù)存到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下運(yùn)行,需要轉(zhuǎn)碼,系統(tǒng)默認(rèn)是gbk,需要手動(dòng)設(shè)置;注意:utf-8還是亂碼,得設(shè)置為utf-8-sig

  frame.to_csv('data.csv', index=True,encoding='utf_8_sig')

  進(jìn)行到這里,我們的流程就已經(jīng)完成一半了,還有兩個(gè)關(guān)鍵步驟,我們?cè)谙乱黄恼吕^續(xù)分析。

 

版權(quán)聲明:本文為IP海(iphai.cn)原創(chuàng)作品,未經(jīng)許可,禁止轉(zhuǎn)載!

Copyright © www.wibm.ac.cn. All Rights Reserved. IP海 版權(quán)所有.
IP海僅提供中國(guó)內(nèi)IP加速服務(wù),無(wú)法跨境聯(lián)網(wǎng),用戶(hù)應(yīng)遵守《服務(wù)條款》內(nèi)容,嚴(yán)禁用戶(hù)使用IP海從事任何違法犯罪行為。
ICP備案鄂ICP備19030659號(hào)-3 公安備案鄂公網(wǎng)安備42100302000141號(hào) 計(jì)算機(jī)軟件著作權(quán)證計(jì)算機(jī)軟件著作權(quán)證 ICP/EDI許可證ICP/EDI許可證:鄂B2-20200106

微信掃一掃咨詢(xún)