溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用python wxpy管理微信公眾號(hào)并利用微信獲取自己的開源數(shù)據(jù)

發(fā)布時(shí)間:2021-04-27 13:41:28 來源:億速云 閱讀:214 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么用python wxpy管理微信公眾號(hào)并利用微信獲取自己的開源數(shù)據(jù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

python主要應(yīng)用領(lǐng)域有哪些

1、云計(jì)算,典型應(yīng)用OpenStack。2、WEB前端開發(fā),眾多大型網(wǎng)站均為Python開發(fā)。3.人工智能應(yīng)用,基于大數(shù)據(jù)分析和深度學(xué)習(xí)而發(fā)展出來的人工智能本質(zhì)上已經(jīng)無法離開python。4、系統(tǒng)運(yùn)維工程項(xiàng)目,自動(dòng)化運(yùn)維的標(biāo)配就是python+Django/flask。5、金融理財(cái)分析,量化交易,金融分析。6、大數(shù)據(jù)分析。

首先wxpy是itchat的升級(jí)版,通過wxpy bot.core即可原封不動(dòng)的調(diào)用itchat的指令。

可以實(shí)現(xiàn)的簡(jiǎn)單功能:

1. 調(diào)取所有微信好友的信息,包括頭像,簽名,地區(qū),等信息。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 19 17:10:01 2019
 
@author: wenzhe.tian
"""
import wxpy as wp
from collections import defaultdict
import pandas as pd
from tkinter import messagebox
import os

#初始化機(jī)器人,選擇緩存模式(掃碼)登錄
bot = wp.Bot(cache_path=True)

friend = bot.core.get_friends(update=True)[0:]
num = 0
for f in friend:
 image = bot.core.get_head_img(userName=f["UserName"]) #用 itchat.get_head_img(userName=None)來爬取好友列表的頭像
 fileImage = open(str(num) + ".jpg",'wb') #將好友頭像下載到本地
 fileImage.write(image)
 fileImage.close()
 num += 1

friend=pd.DataFrame(friend) 
friend.to_excel('friend.xlsx',sheet_name='Friend_Info')#所有朋友相關(guān)資料存為excel

根據(jù)上面可以做一些頭像集合,或者微信好友的動(dòng)態(tài)圖表統(tǒng)計(jì)。

2.  消息回復(fù)

bot.friends().search('老九門里排第十')[0].send('[強(qiáng)]') #表示回復(fù)給 '老九門里排第十' 點(diǎn)贊符號(hào) 相當(dāng)于 friends.search()

-------------------------------------------------------------------------------

然而這些不能滿足一些高級(jí)的需求比如:

1.可以自動(dòng)將錄音,視頻,圖像,聊天記錄等按照檔案記錄下來。(此處修改可操作連接圖靈機(jī)器人,將提問和回答的信息記錄下來。作為自己訓(xùn)練的原始數(shù)據(jù)集)

其中 全局參數(shù) global temp:

temp是一個(gè)list,可以將最近的消息加入list,該消息信息是字典格式的所有消息包含的原始數(shù)據(jù)。 比如消息類型,發(fā)送人,接收人等等。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 19 13:10:01 2019

@author: wenzhe.tian
"""
import wxpy as wp
from collections import defaultdict
import pandas as pd
from tkinter import messagebox
import os

bot = wp.Bot(cache_path=True)
chats=bot.chats() # 所有開啟了聊天窗口的對(duì)象
groups=bot.groups() # 所有群的對(duì)象
friends=bot.friends() # 所有好友的對(duì)象
mps=bot.mps() # 所有公眾號(hào)的對(duì)象

@bot.register()

def print_messages(msg):
 print(msg.create_time,msg)
 global temp
 if msg.sender.nick_name in message.keys():
  message[msg.sender.nick_name].append(msg.raw)
 else:
  message[msg.sender.nick_name]=[]
  message[msg.sender.nick_name].append(msg.raw)
 
 path='C:\\Users\\wenzhe.tian\\Desktop\\send_mail\\wechat_infomation\\'; # 修改為希望存儲(chǔ)聊天,推送,圖片,視頻,音頻等信息的地址
 if os.path.exists(path+msg.sender.nick_name)==False:
  os.makedirs(path+msg.sender.nick_name)
 if msg.type=='Text':
  f = open(path+msg.sender.nick_name+'\\message.txt','a+',encoding='utf-8')
  f.read()
  f.write('\n')
  f.write(str(msg.create_time)+msg.text)
  f.close()
 else:
  print('非文字消息,已存儲(chǔ)')
  if '.' in msg.file_name:
   msg.get_file(save_path=path+msg.sender.nick_name+'\\'+msg.file_name)
  else:
   msg.get_file(save_path=path+msg.sender.nick_name+'\\'+msg.file_name+'.txt')

              怎么用python wxpy管理微信公眾號(hào)并利用微信獲取自己的開源數(shù)據(jù) 怎么用python wxpy管理微信公眾號(hào)并利用微信獲取自己的開源數(shù)據(jù)                         

 如上圖: 所有新回復(fù)的消息會(huì)自動(dòng)創(chuàng)建 代碼里path下的文件夾,視頻,錄音等非文字內(nèi)容會(huì)直接下載,推送等html格式的消息會(huì)當(dāng)做文字和聊天記錄一同保存下來記錄到message.txt里

文字可以用于訓(xùn)練,亦可用于詞云等生成。 

2.可以管理微信公眾號(hào),比如根據(jù)對(duì)方的輸入自動(dòng)從調(diào)取數(shù)據(jù)回復(fù),或者固定轉(zhuǎn)發(fā)某些來源的推送。

# 定位公司群
company_group = ensure_one(bot.groups().search('公司微信群'))

# 定位老板
boss = ensure_one(company_group.search('BOSS'))

# 將老板的消息轉(zhuǎn)發(fā)到文件傳輸助手
@bot.register(company_group)
def forward_boss_message(msg):
 if msg.member == boss:
  msg.forward(bot.file_helper, prefix='BOSS')

3. 針對(duì)某人的自動(dòng)回復(fù),此處可設(shè)定詞匯和回復(fù)內(nèi)容(比如html格式的推送或者鏈接)來實(shí)現(xiàn)微信公眾號(hào)的一些運(yùn)營(yíng)。

 具體用法如下:

@ bot.register() 的括號(hào)內(nèi)必須為一個(gè)對(duì)象,比如上文是一個(gè)公司的群,是從所有群中搜索名字 '公司微信群' ,我們之前定義的

groups=bot.groups() # 所有群的對(duì)象
friends=bot.friends() # 所有好友的對(duì)象
mps=bot.mps() # 所有公眾號(hào)的對(duì)象

均是對(duì)象的集合,從中篩選即可,比如想要自動(dòng)回復(fù) 老九門里排第十 這個(gè)人的所有text類型的消息。即

laojiu= friends.search('老九門里排第十')[0] # 這里其實(shí)默認(rèn)搜索的是nickname

然后:

@bot.register([laojiu, groups], TEXT) # 此處表示對(duì)laojiu 和所有g(shù)roups里的對(duì)象的text類型的消息做操作

def auto_reply(msg):
 # 如果是群聊,但沒有被 @,則不回復(fù)
 if isinstance(msg.chat, Group) and not msg.is_at:
  return
 else:
  # 回復(fù)消息內(nèi)容和類型
  return '收到消息: {} ({})'.format(msg.text, msg.type)

暫時(shí)更新到這里,以上。

關(guān)于“怎么用python wxpy管理微信公眾號(hào)并利用微信獲取自己的開源數(shù)據(jù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI