使用Python实现微信发送文本消息、图片以及附件
生活随笔
收集整理的這篇文章主要介紹了
使用Python实现微信发送文本消息、图片以及附件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Python實現微信發送文本消息、圖片以及附件
因為目前很多微信賬號已經不支持網頁版的操作了,因此無法使用之前的itchat這一類對微信進行操作。
為此,選擇對微信PC端進行開發。
選擇的方式比較笨拙,主要是通過windows的剪切板和通過位置定位模擬各種操作來實現的。
針對文本格式,比較簡單,只需要直接調用剪貼板即可。
win32con.CF_UNICODETEXT表示采用文本的方式寫入數據,可以避免中文亂碼。
對于圖片格式的,因為剪切板的特性,需要將圖片保存成流的形式,然后進行寫入的操作。
def setImage(pathfile):img = Image.open(pathfile)output = BytesIO() argument expected, got 'bytes'img.convert("RGB").save(output, "BMP") # 以BMP格式保存流data = output.getvalue()[14:] # bmp文件頭14個字節丟棄output.close()w.OpenClipboard()w.EmptyClipboard()w.SetClipboardData(win32con.CF_ENHMETAFILE, data)w.CloseClipboard()針對附件,實現起來比較困難,選擇通過PyQt5來輔助實現。
def setFile(pathfile):app = QtWidgets.QApplication([])data = QtCore.QMimeData()url = QtCore.QUrl.fromLocalFile(pathfile)data.setUrls([url])app.clipboard().setMimeData(data)clipboard = QtWidgets.QApplication.clipboard()在實現數據存入剪切板后,需要進行微信的模擬操作。
模擬移動鼠標的操作、單擊操作、回車操作、復制操作和發送操作。
最后,通過調用上述函數,實現微信發送的功能。
mes是發送的內容。如果是文本類型,就直接將消息寫入;如果是圖片類型或者附件,則寫入的是對應文件的路徑,絕對路徑和相對路徑均可,建議寫成絕對路徑。
senders是要發送的人,可以選擇批量發送給多個人或者群。
types是要發送的內容的類型。如果是文本格式,則置為1;如果是圖片格式,則置為2;如果是附件格式,則置為3.
最后只需要調用SendWeChat函數即可完成微信的發送。
總結
以上是生活随笔為你收集整理的使用Python实现微信发送文本消息、图片以及附件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域权限维持——黄金票据和白金票据
- 下一篇: 微型计算机中的位置的是什么,电脑基础知识