摘要:用實(shí)現(xiàn)微信好友性別及位置信息統(tǒng)計這里使用的庫開發(fā)。使用圖靈機(jī)器人自動與指定好友聊天讓室友幫忙測試發(fā)現(xiàn)發(fā)送表情發(fā)送文字還能回應(yīng),但是發(fā)送圖片可能不會回復(fù),猜應(yīng)該是我們申請的圖靈機(jī)器人是最初級的沒有加圖片識別功能。
1.用 Python 實(shí)現(xiàn)微信好友性別及位置信息統(tǒng)計
這里使用的python3+wxpy庫+Anaconda(Spyder)開發(fā)。如果你想對wxpy有更深的了解請查看:wxpy: 用 Python 玩微信
# -*- coding: utf-8 -*- """ 微信好友性別及位置信息 """ #導(dǎo)入模塊 from wxpy import Bot """Q 微信機(jī)器人登錄有3種模式, (1)極簡模式:robot = Bot() (2)終端模式:robot = Bot(console_qr=True) (3)緩存模式(可保持登錄狀態(tài)):robot = Bot(cache_path=True) """ #初始化機(jī)器人,選擇緩存模式(掃碼)登錄 robot = Bot(cache_path=True) #獲取好友信息 robot.chats() #robot.mps()#獲取微信公眾號信息 #獲取好友的統(tǒng)計信息 Friends = robot.friends() print(Friends.stats_text())
效果圖(來自筆主盆友圈):
2.用 Python 實(shí)現(xiàn)聊天機(jī)器人
這里使用的python3+wxpy庫+Anaconda(Spyder)開發(fā)。需要提前去圖靈官網(wǎng)創(chuàng)建一個屬于自己的機(jī)器人然后得到apikey。
使用圖靈機(jī)器人自動與指定好友聊天
讓室友幫忙測試發(fā)現(xiàn)發(fā)送表情發(fā)送文字還能回應(yīng),但是發(fā)送圖片可能不會回復(fù),猜應(yīng)該是我們申請的圖靈機(jī)器人是最初級的沒有加圖片識別功能。
# -*- coding: utf-8 -*- """ Created on Tue Mar 13 19:09:05 2018 @author: Snailclimb @description使用圖靈機(jī)器人自動與指定好友聊天 """ from wxpy import Bot,Tuling,embed,ensure_one bot = Bot() my_friend = ensure_one(bot.search("鄭凱")) #想和機(jī)器人聊天的好友的備注 tuling = Tuling(api_key="你申請的apikey") @bot.register(my_friend) # 使用圖靈機(jī)器人自動與指定好友聊天 def reply_my_friend(msg): tuling.do_reply(msg) embed()
使用圖靈機(jī)器人群聊
# -*- coding: utf-8 -*- """ Created on Tue Mar 13 18:55:04 2018 @author: Administrator """ from wxpy import Bot,Tuling,embed bot = Bot(cache_path=True) my_group = bot.groups().search("群聊名稱")[0] # 記得把名字改成想用機(jī)器人的群 tuling = Tuling(api_key="你申請的apikey") # 一定要添加,不然實(shí)現(xiàn)不了 @bot.register(my_group, except_self=False) # 使用圖靈機(jī)器人自動在指定群聊天 def reply_my_friend(msg): print(tuling.do_reply(msg)) embed()
3.用 Python分析朋友圈好友性別分布(圖標(biāo)展示)
這里沒有使用wxpy而是換成了Itchat操作微信,itchat只需要2行代碼就可以登錄微信。如果你想詳細(xì)了解itchat,請查看:
itchat入門進(jìn)階教程以及
itchat github項(xiàng)目地址
另外就是需要用到python的一個畫圖功能非常強(qiáng)大的第三方庫:matplotlib。
如果你想對matplotlib有更深的了解請查看我的博文:Python第三方庫matplotlib(詞云)入門與進(jìn)階
# -*- coding: utf-8 -*- """ Created on Tue Mar 13 17:09:26 2018 @author: Snalclimb @description 微信好友性別比例 """ import itchat import matplotlib.pyplot as plt from collections import Counter itchat.auto_login(hotReload=True) friends = itchat.get_friends(update=True) sexs = list(map(lambda x: x["Sex"], friends[1:])) counts = list(map(lambda x: x[1], Counter(sexs).items())) labels = ["Male","FeMale", "Unknown"] colors = ["red", "yellowgreen", "lightskyblue"] plt.figure(figsize=(8, 5), dpi=80) plt.axes(aspect=1) plt.pie(counts, # 性別統(tǒng)計結(jié)果 labels=labels, # 性別展示標(biāo)簽 colors=colors, # 餅圖區(qū)域配色 labeldistance=1.1, # 標(biāo)簽距離圓點(diǎn)距離 autopct="%3.1f%%", # 餅圖區(qū)域文本格式 shadow=False, # 餅圖是否顯示陰影 startangle=90, # 餅圖起始角度 pctdistance=0.6 # 餅圖區(qū)域文本距離圓點(diǎn)距離 ) plt.legend(loc="upper right",) plt.title("%s的微信好友性別組成" % friends[0]["NickName"]) plt.show()
效果圖(來自筆主盆友圈):
4.用 Python分析朋友圈好友的簽名
需要用到的第三方庫:
numpy:本例結(jié)合wordcloud使用
jieba:對中文驚進(jìn)行分詞
PIL: 對圖像進(jìn)行處理(本例與wordcloud結(jié)合使用)
snowlp:對文本信息進(jìn)行情感判斷
wordcloud:生成詞云
matplotlib:繪制2D圖形
# -*- coding: utf-8 -*- """ 朋友圈朋友簽名的詞云生成以及 簽名情感分析 """ import re,jieba,itchat import jieba.analyse import numpy as np from PIL import Image from snownlp import SnowNLP from wordcloud import WordCloud import matplotlib.pyplot as plt itchat.auto_login(hotReload=True) friends = itchat.get_friends(update=True) def analyseSignature(friends): signatures = "" emotions = [] for friend in friends: signature = friend["Signature"] if(signature != None): signature = signature.strip().replace("span", "").replace("class", "").replace("emoji", "") signature = re.sub(r"1f(d.+)","",signature) if(len(signature)>0): nlp = SnowNLP(signature) emotions.append(nlp.sentiments) signatures += " ".join(jieba.analyse.extract_tags(signature,5)) with open("signatures.txt","wt",encoding="utf-8") as file: file.write(signatures) # 朋友圈朋友簽名的詞云相關(guān)屬性設(shè)置 back_coloring = np.array(Image.open("alice_color.png")) wordcloud = WordCloud( font_path="simfang.ttf", background_color="white", max_words=1200, mask=back_coloring, max_font_size=75, random_state=45, width=1250, height=1000, margin=15 ) #生成朋友圈朋友簽名的詞云 wordcloud.generate(signatures) plt.imshow(wordcloud) plt.axis("off") plt.show() wordcloud.to_file("signatures.jpg")#保存到本地文件 # Signature Emotional Judgment count_good = len(list(filter(lambda x:x>0.66,emotions)))#正面積極 count_normal = len(list(filter(lambda x:x>=0.33 and x<=0.66,emotions)))#中性 count_bad = len(list(filter(lambda x:x<0.33,emotions)))#負(fù)面消極 labels = [u"負(fù)面消極",u"中性",u"正面積極"] values = (count_bad,count_normal,count_good) plt.rcParams["font.sans-serif"] = ["simHei"] plt.rcParams["axes.unicode_minus"] = False plt.xlabel(u"情感判斷")#x軸 plt.ylabel(u"頻數(shù)")#y軸 plt.xticks(range(3),labels) plt.legend(loc="upper right",) plt.bar(range(3), values, color = "rgb") plt.title(u"%s的微信好友簽名信息情感分析" % friends[0]["NickName"]) plt.show() analyseSignature(friends)
效果圖(來自筆主盆友圈):
參考文獻(xiàn):
itchat文檔:http://itchat.readthedocs.io/zh/latest/tutorial/tutorial0/
wxpy文檔:http://wxpy.readthedocs.io/zh/latest/index.html
基于Python實(shí)現(xiàn)的微信好友數(shù)據(jù)分析(簽名,頭像等等):
http://blog.csdn.net/qinyuanpei/article/details/79360703
Windows環(huán)境下Python中wordcloud的使用——自己踩過的坑 :http://blog.csdn.net/heyuexianzi/article/details/76851377
歡迎關(guān)注我的微信公眾號:“Java面試通關(guān)手冊”(堅持原創(chuàng),分享美文,分享各種Java學(xué)習(xí)資源,面試題,以及企業(yè)級Java實(shí)戰(zhàn)項(xiàng)目回復(fù)關(guān)鍵字免費(fèi)領(lǐng)?。?/strong>
github項(xiàng)目地址(系列文章包含常見第三庫的使用與爬蟲,會持續(xù)更新)
歡迎star和fork.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41461.html
摘要:模塊是一個文件,以結(jié)尾,包含了對象定義和語句模塊讓你能夠有邏輯地組織你的代碼段。把相關(guān)的代碼分配到一個模塊里能讓你的代碼更好用,更易懂。命令執(zhí)行成功,執(zhí)行結(jié)果命令執(zhí)行失敗一秒后執(zhí)行關(guān)機(jī)命令 Python 模塊(Module) 是一個 Python 文件,以 .py 結(jié)尾,包含了 Python 對象定義和Python語句 模塊讓你能夠有邏輯地組織你的 Python 代碼段。 把相關(guān)的代...
摘要:微信已經(jīng)成了中國人生活中基本的通訊工具除了那些自由開源人士以外,前兩天發(fā)現(xiàn)微信機(jī)器人的項(xiàng)目,其實(shí)早就有了。開發(fā)微信機(jī)器人該項(xiàng)目基于上的,使用文檔在這里。原文地址一個簡單有趣的微信聊天機(jī)器人我的博客時空路由器 微信已經(jīng)成了中國人生活中基本的通訊工具(除了那些自由開源人士以外),前兩天發(fā)現(xiàn)微信機(jī)器人的項(xiàng)目,其實(shí)早就有了。想著自己也做一個吧,順便加了一些小小的功能。 釋放我的機(jī)器人 微信掃一...
摘要:程序主要是通過使用庫來登錄到微信網(wǎng)頁端,然后通過來發(fā)送消息和接收消息。推薦閱讀頂級開源項(xiàng)目用吃雞是一種什么樣的體驗(yàn)用玩微信,機(jī)器人陪你嘮嗑本文首發(fā)于公眾號癡海,后臺回復(fù),為你精心準(zhǔn)備時下最熱門教程。 showImg(https://segmentfault.com/img/remote/1460000015982002); 閱讀文本大概需要 5 分鐘。 今天帶給大家一個非常有意思的 p...
一、實(shí)驗(yàn)環(huán)境:win10 + python3 + wxpy 微信版本:6.6.5 1.1、從官網(wǎng)下載python最新版本并進(jìn)行安裝。 1.2、進(jìn)入python安裝目錄Scripts/文件夾下,使用easy_install.exe pip 命令安裝pip 1.3、使用pip install wxpy 命令安裝wxpy 二、源碼文件demo.py #coding=utf-8 from wxpy...
閱讀 2465·2021-09-09 09:33
閱讀 2865·2019-08-30 15:56
閱讀 3118·2019-08-30 14:21
閱讀 890·2019-08-30 13:01
閱讀 854·2019-08-26 18:27
閱讀 3583·2019-08-26 13:47
閱讀 3449·2019-08-26 10:26
閱讀 1583·2019-08-23 18:38