欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python爬蟲實現“盜取”微信好友信息的方法分析

系統 1712 0

本文實例講述了Python爬蟲實現“盜取”微信好友信息的方法。分享給大家供大家參考,具體如下:

剛起床,閑來無聊,找點事做,看了朋友圈一篇爬取微信好友信息的文章,突發奇想,偷偷看看女朋友微信有些啥。。。。于是就下手了。。。。[陰險]

1、準備工作:

運行平臺:Windows

Python版本:Python3.6

IDE:Sublime Text

Python庫:wxpy,

2、開發流程: (電腦沒電了,要撐不住了啦~之后具體分析)

3、直接上代碼:

            
# 微信好友信息爬取+數據可視化
# encoding=utf-8
__author__ = 'Jonny'
__location__ = '濟南'
__date__ = '2018-06-02'
from wxpy import *
import re
import jieba
import numpy
import pandas as pd
import matplotlib.pyplot as plt
from scipy.misc import imread
from wordcloud import WordCloud,ImageColorGenerator
from matplotlib.patches import Polygon
from matplotlib.colors import rgb2hex
from mpl_toolkits.basemap import B
# 微信登錄
def wx_login():
  try:
    #初始化機器人,掃碼登錄
    bot = Bot()
    #獲取好友列表
    frinds = bot.friends()
    #wxpy.api.chats.chats.Chats對象是多個聊天對象的合集,
    # 可用于搜索或統計,可以搜索和統計的信息包括sex(性別)、province(省份)、city(城市)和signature(個性簽名)等
    print(type(frinds))
    #輸出好友列表
    for i in frinds:
      print(i)
  except Exception as e:
    print(e.args)
    wx_login()
  return frinds
# 數據可視化
#統計男女性別信息
def wx_friend_sex_infor(friends):
  sex_dict = {'male':0,'female':0,'other':0}
  for friend in friends:
    if friend.sex == 1:
      sex_dict['male'] += 1
    elif friend.sex == 2:
      sex_dict['female'] += 1
    else:
      print(friend,'性別未標記!')
      sex_dict['other'] += 1
  print(sex_dict)
  wx_show_sex_infor(sex_dict)
# pie(x, explode=None, labels=None,
#   colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),
#   autopct=None, pctdistance=0.6, shadow=False,
#   labeldistance=1.1, startangle=None, radius=None,
#   counterclock=True, wedgeprops=None, textprops=None,
#   center = (0, 0), frame = False )
# 參數說明
# x    (每一塊)的比例,如果sum(x) > 1會使用sum(x)歸一化
# labels (每一塊)餅圖外側顯示的說明文字
# explode (每一塊)離開中心距離
# startangle 起始繪制角度,默認圖是從x軸正方向逆時針畫起,如設定=90則從y軸正方向畫起
# shadow 是否陰影
# labeldistance label繪制位置,相對于半徑的比例, 如<1則繪制在餅圖內側
# autopct 控制餅圖內百分比設置,可以使用format字符串或者format function
#     '%1.1f'指小數點前后位數(沒有用空格補齊)
# pctdistance 類似于labeldistance,指定autopct的位置刻度
# radius 控制餅圖半徑
# 返回值:
# 如果沒有設置autopct,返回(patches, texts)
# 如果設置autopct,返回(patches, texts, autotexts)
def wx_show_sex_infor(data):
  labers = ['男性','女性','未標記']
  data = [data['male'],data['female'],data['other']]
  plt.pie(data=data,labels=labers,autopct='%.2f',shadow=True)
  plt.show()
  plt.savefig('sex.jpg')
  plt.close()
def wx_friend_location_infor(friends):
  loction_dict = {'北京': 0, '上海': 0, '天津': 0, '重慶': 0,
           '河北': 0, '山西': 0, '吉林': 0, '遼寧': 0, '黑龍江': 0,
           '陜西': 0, '甘肅': 0, '青海': 0, '山東': 0, '福建': 0,
           '浙江': 0, '臺灣': 0, '河南': 0, '湖北': 0, '湖南': 0,
           '江西': 0, '江蘇': 0, '安徽': 0, '廣東': 0, '海南': 0,
           '四川': 0, '貴州': 0, '云南': 0,
           '內蒙古': 0, '新疆': 0, '寧夏': 0, '廣西': 0, '西藏': 0,
           '香港': 0, '澳門': 0}
  for friend in friends:
    if friend.province in loction_dict.keys():
      loction_dict[friend.province] += 1
  #轉成JSON格式:
  loction_list = []
  for key,value in loction_dict.items():
    loction_list.append({'name':key,'sum':value})
  print(loction_list)
def wx_show_location_infor():
  pass
#顯示好友個簽信息
def wx_show_signature(friends):
  #統計好友簽名
  for friend in friends:
    #對數據進行清洗,排除標點信息的干擾
    pattern = re.compile(r'[一-??]+')
    filterdata = re.findall(pattern,friend.signature)
    with open('signature.txt','a',encoding='utf-8',newline='') as f:
      f.write(str(friend)+''.join(filterdata)+'\n')
  f.close()
  # 讀取文件數據
  with open('signature.txt','r',encoding='utf-8',newline='') as f:
    content = f.read()
  f.close()
  segment = jieba.lcut(content)
  words_df = pd.DataFrame({'segment':segment})
  #讀取stopwords
  stopwords = pd.read_csv('stopwords.txt',index_col=False,quoting=3,sep=' ',names=['stopword'],encoding='gb18030')
  words_df = words_df[~words_df.segment.isin(stopwords.stopword)]
  print(words_df)
  words_stat = words_df.groupby(by=['segment'])['segment'].agg({'計數':numpy.size})
  words_stat = words_stat.reset_index().sort_values(by=['計數'],ascending=False)
  #設置詞云屬性
  color_mask = imread('background.jpg')
  wordcloud = WordCloud(font_path='simhei.ttf',    #設置字體可以顯示中文
             background_color= 'white',  #背景顏色是白色
             max_words=1000,        #設置詞云顯示的最大詞數
             mask=color_mask,       #設置背景圖片
             max_font_size=400,      #設置詞云中字體的最大值
             random_state=42,
             width=500,height=430,margin=2,#設置圖片默認大小
  )
  # 生成詞云, 可以用generate輸入全部文本,也可以我們計算好詞頻后使用generate_from_frequencies函數
  word_frequence = {x[0]: x[1] for x in words_stat.head(100).values}
  print(word_frequence)
  word_frequence_dict = {}
  for key in word_frequence:
    word_frequence_dict[key] = word_frequence[key]
  wordcloud.generate_from_frequencies(word_frequence_dict)
  # 從背景圖片生成顏色值
  image_colors = ImageColorGenerator(color_mask)
  # 重新上色
  wordcloud.recolor(color_func=image_colors)
  # 保存圖片
  wordcloud.to_file('output.png')
  plt.imshow(wordcloud)
  plt.axis("off")
  plt.show()
  plt.close()
if __name__ == '__main__':
  friends = wx_login()
  print('~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  wx_friend_sex_infor(friends)
  print('~~~~~~~~~~~~~~~~~~~~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  wx_friend_location_infor(friends)
  print('~~~~~~~~~~~~~~~~~~~~~~3~~~~~~~~~~~~~~~~~~~~~~~~~~')
  wx_show_signature(friends)
  print('~~~~~~~~~~~~~~~~~~~~~~~4~~~~~~~~~~~~~~~~~~~~~~~~~')


          

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人夜间视频 | xxxxhd73国产| 精品一区二区三区不卡 | 久草手机在线视频 | 97超级碰碰碰碰在线视频 | 热久久伊人| 夜夜嘿视频免费看 | 亚洲国产精品一区二区第一页 | 一区二区精品在线 | 魔法骑士在线观看免费完整版高清 | 成人黄色免费视频 | 亚洲视频在线视频 | 伊人久久99亚洲精品久久频 | 久久精品视频免费观看 | 国产福利视频在线 | 五月天综合在线 | 国产一级毛片高清 | 亚洲午夜久久久久久尤物 | 天天插天天狠天天透 | 色午夜在线 | 清纯唯美亚洲综合激情 | 欧美亚洲国产色综合 | 夜精品一区二区无码A片 | 日日操av| 亚洲区一 | 一区二区在线 | 欧美日韩图区 | 国产不卡视频在线 | 国产正在播放 | 污的视频在线观看 | 亚洲一二三 | 色综合天天天天做夜夜夜夜做 | 国产成人精品免费视频大全最热 | 国产91亚洲精品 | 久久99亚洲综合精品首页 | 亚洲情av| 日韩视频在线一区二区三区 | 国产精品免费播放 | 亚洲一区二区中文字幕 | 久久久久久国产精品视频 | 精品国产一区二区三区久久久蜜月 |