首页 > 其他分享 >itchat保存接收到的图片

itchat保存接收到的图片

时间:2024-02-19 14:47:26浏览次数:26  
标签:replyContent itchat 保存 收到 HTMLParser msg 接收 Type

import  itchat
from itchat.content import TEXT, MAP, CARD, NOTE, SHARING, PICTURE, RECORDING, ATTACHMENT, VIDEO, FRIENDS, SYSTEM
# 下载文件到本地
def download_files(msg):
    msg.download("C:\\360demo\\"+msg['FileName'])
    # itchat.send('@%s@%s' % (
    #     'img' if msg['Type'] == 'Picture' else 'fil', msg['FileName']),
    #     msg['FromUserName'])
    # return '%s received' % msg['Type']
 
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING,PICTURE,RECORDING,ATTACHMENT,VIDEO,FRIENDS,SYSTEM])
def reply_mseeage(msg):
    if msg['Type'] == TEXT:
       replyContent="我收到了文本消息"
    if msg['Type'] == MAP:
       replyContent = "我收到了位置内容"
    if msg['Type'] == CARD:
       replyContent = "我收到了推荐人信息"
    if msg['Type'] == NOTE:
       replyContent = "我收到了通知文本"
    if msg['Type'] == SHARING:
       replyContent = "我收到了分享消息"
    if msg['Type'] == PICTURE:
       replyContent = "我收到了图片"
       download_files(msg)
    if msg['Type'] == RECORDING:
       replyContent = "我收到了语音"
       download_files(msg)
    if msg['Type'] == ATTACHMENT:
       replyContent = "我收到了文件"
       download_files(msg)
    if msg['Type'] == VIDEO:
       replyContent = "我收到了视频"
       download_files(msg)
    if msg['Type'] == FRIENDS:
        itchat.add_friend(**msg['Text'])
        replyContent = "我收到了好友请求"
    if msg['Type'] == SYSTEM:
       replyContent = "我收到了一条系统消息"
    return replyContent;
 
itchat.auto_login(hotReload=True)
itchat.run()

  

 

python接收微信消息报'HTMLParser' object has no attribute 'unescape'错误

 

一直有个想法,想要弄个微信机器人,然而出师不利,刚开始就碰壁了

先上代码,这个是用来接收消息的,是个测试脚本

复制代码
#!/usr/bin/python
# coding: utf-8

import itchat

def write_infomation(text_value):
  print(text_value)

@itchat.msg_register(itchat.content.TEXT)
def get_reply(msg):
  write_infomation(msg.text)

itchat.auto_login()
itchat.run()
复制代码

我连接微信用的itchat

itchat.auto_login()正常跳出登陆二维码,用手机扫码后正常登陆,本来以为一切正常,尝试给自己发了个消息,这时候就弹出错误'HTMLParser' object has no attribute 'unescape',并且,每次发消息,都会弹一段错误出来,证明消息接收没问题,那么就看错误了,提示itchat的utils.py这个文件报错,于是定位到问题点

下面我把这个文件的重点代码放上来

from HTMLParser import HTMLParser

htmlParser = HTMLParser()

d[k]  = htmlParser.unescape(d[k]) #就是这里报错

在网上搜索了一下,这个报错的原因是因为高版本python废弃了HTMLParser().unescape()这个方法,所以提示找不到这个方法,可以用html.unescape()来替代

那么后面的事就简单了,把utils.py这个文件的关键代码替换下就行了

 

复制代码
from HTMLParser import HTMLParser
import html #首先导入html

htmlParser = HTMLParser()

d[k]  = html.unescape(d[k]) #这里把htmlParser改成html
复制代码

 

再次执行测试了一下

正常接收消息,那么接下来故事就这么开始了

标签:replyContent,itchat,保存,收到,HTMLParser,msg,接收,Type
From: https://www.cnblogs.com/pythonClub/p/18021044

相关文章

  • ZLmediakit的TCP主动接收RTP数据
    当我们使用openRtpServer接口的时候,一般都是别人主动向port或者默认端口(默认1000)上推数据;这种属于ZLM的socket被动接收连接(TCP),ZLM的RTPserver作为服务端,监听端口,有别人过来链接之后,握手建立连接,传输数据;如果我们想主动去链接对方,告诉对方给我发数据要怎么处理呢?首先,发送数据端......
  • 创新技巧|迁移到 Google Analytics 4 时如何保存历史 Universal Analytics 数据
    GoogleUniversalAnalytics从2023年7月起停止收集数据(除了付费GA360之外)。它被GoogleAnalytics4取代。为此,不少用户疑惑:是否可以将累积(历史)数据从GoogleAnalyticsUniversal传输到GoogleAnalytics4?您无法将数据传输到新的GA4界面。但您可以将数据保存在Goog......
  • Python 机器学习 模型保存和加载
    ​ Python机器学习中,模型保存和加载是两个非常重要的操作。模型保存可以将训练好的模型保存到文件,以便以后使用。模型加载可以将保存的文件加载到内存,以便进行预测或评估。最常用保存和加模型的库包括pickle和joblib,另外在使用特定的机器学习库,如scikit-learn、TensorFlow或Py......
  • 写一个计算器加减乘除能循环接收
    需求写一个计算器加减乘除能循环接收代码实现packagecom.jichu.Method;importjava.util.Scanner;publicclassDemo07{publicstaticvoidmain(String[]args){//写一个计算器加减乘除能循环接收Scannerscanner=newScanner(System.in);......
  • Scanner—使用next方式接收
    packagescanner;importjava.util.Scanner;publicclassnext{publicstaticvoidmain(String[]args){//1.创建一个扫描器对象,用于接收键盘数据Scannerscanner=newScanner(System.in);//输入newScanner(System.in)Alt+回车System.ou......
  • Scanner—使用nextLine方式接收
    packagescanner;importjava.util.Scanner;publicclassnextLine{publicstaticvoidmain(String[]args){//1.创建一个扫描器对象,用于接收键盘数据Scannerscanner=newScanner(System.in);//new.Scanner(System.in)Alt+回车System.......
  • Chrome修改Js以及保存资源
    Chrome有pdb下载,但是需要梯子,没法下载只能分析dll程序有源码可以辅助github可以下载,速度慢可以从镜像下载521github.comJs的修改尝试在ScriptCompiler::Compile修改,ClassicScript_RunScriptAndReturnValue,这些都有缺陷:修改的js在源码中看不到ScriptResour......
  • ADI CCES ADSPI2156X UART DMA模式中,获取当前存到第几个数CurrXCount, 重新从头开始接
    关键的一些寄存器关键的寄存器pUARTDstDMARegstypedefstruct{uint32_tnTmrDevNum;/*TimerassosiatedtotheselectedUARTforAutobaud*/ADI_UART_TypeDef*constpUARTRegs;/*Pointertobaseadd......
  • C++OpenCV 按之前图片名称保存图片
    C++OpenCV按之前图片名称保存图片://图片地址cv::Stringpattern="./path/*.jpeg";//可以使用cv::glob函数来获取匹配模式的文件路径列表std::vector<cv::String>file_paths;cv::glob(pattern,file_paths);for(size_ti=0;i<file_paths.size();i++){//......
  • PowerShell中,可以使用以下命令来发送和接收TCP数据 发送IPv4 TCP数据 接收IPv4 TCP
    在PowerShell中,可以使用以下命令来发送和接收TCP数据:发送IPv4TCP数据:CopyCode$remoteIPAddress="192.168.0.1"$remotePort=80$tcpClient=New-ObjectSystem.Net.Sockets.TcpClient($remoteIPAddress,$remotePort)$networkStream=$tcpClient.GetStream()$bytes......