{"id":41,"date":"2021-11-17T17:09:56","date_gmt":"2021-11-17T09:09:56","guid":{"rendered":"https:\/\/www.yiyuanlt.cn\/?p=41"},"modified":"2021-11-17T17:09:56","modified_gmt":"2021-11-17T09:09:56","slug":"python%e5%ae%9e%e7%8e%b0wx%e9%98%b2%e6%92%a4%e5%9b%9e","status":"publish","type":"post","link":"https:\/\/www.yiyuanlt.cn\/index.php\/2021\/11\/17\/python%e5%ae%9e%e7%8e%b0wx%e9%98%b2%e6%92%a4%e5%9b%9e\/","title":{"rendered":"python\u5b9e\u73b0wx\u9632\u64a4\u56de"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>import itchat\r\nfrom itchat.content import *\r\nimport os\r\nimport time\r\nimport xml.dom.minidom\u00a0 \u00a0 # \u89e3\u6790xml\u6a21\u5757\r\n\r\n# \u8fd9\u662f\u4fdd\u5b58\u64a4\u56de\u6d88\u606f\u7684\u6587\u4ef6\u76ee\u5f55(\u5982\uff1a\u56fe\u7247\u3001\u8bed\u97f3\u7b49)\uff0c\u8fd9\u91cc\u5df2\u7ecf\u5199\u6b7b\u4e86\uff0c\u53ef\u4ee5\u81ea\u884c\u4fee\u6539\r\ntemp = 'E:\\\\temp' + '\/' + '\u64a4\u56de\u7684\u6d88\u606f'\r\nif not os.path.exists(temp):\r\n\u00a0 \u00a0 os.mkdir(temp)\r\n\r\nitchat.auto_login(True)\u00a0 \u00a0 # \u81ea\u52a8\u767b\u5f55\r\n\r\ndict = {}\u00a0 \u00a0 # \u5b9a\u4e49\u4e00\u4e2a\u5b57\u5178\r\n\r\n\r\n# \u8fd9\u662f\u4e00\u4e2a\u88c5\u9970\u5668\uff0c\u7ed9\u4e0b\u9762\u7684\u51fd\u6570\u6dfb\u52a0\u65b0\u529f\u80fd\r\n# \u80fd\u591f\u6355\u83b7\u597d\u53cb\u53d1\u9001\u7684\u6d88\u606f\uff0c\u5e76\u4f20\u9012\u7ed9\u51fd\u6570\u53c2\u6570msg\r\n@itchat.msg_register(&#91;TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO])\u00a0\u00a0# \u6587\u672c\uff0c\u8bed\u97f3\uff0c\u56fe\u7247\r\ndef resever_info(msg):\r\n\u00a0 \u00a0 global dict\u00a0 \u00a0 # \u58f0\u660e\u5168\u5c40\u53d8\u91cf\r\n\r\n\u00a0 \u00a0 info = msg&#91;'Text']\u00a0\u00a0# \u53d6\u51fa\u6d88\u606f\u5185\u5bb9\r\n\u00a0 \u00a0 msgId = msg&#91;'MsgId']\u00a0\u00a0# \u53d6\u51fa\u6d88\u606f\u6807\u8bc6\r\n\u00a0 \u00a0 info_type = msg&#91;'Type']\u00a0\u00a0# \u53d6\u51fa\u6d88\u606f\u7c7b\u578b\r\n\u00a0 \u00a0 name = msg&#91;'FileName']\u00a0\u00a0# \u53d6\u51fa\u6d88\u606f\u6587\u4ef6\u540d\r\n\u00a0 \u00a0 # \u53d6\u51fa\u6d88\u606f\u53d1\u9001\u8005\u6807\u8bc6\u5e76\u4ece\u597d\u53cb\u5217\u8868\u4e2d\u68c0\u7d22\r\n\u00a0 \u00a0 fromUser = itchat.search_friends(userName=msg&#91;'FromUserName'])&#91;'NickName']\r\n\u00a0 \u00a0 ticks = msg&#91;'CreateTime']\u00a0\u00a0# \u83b7\u53d6\u4fe1\u606f\u53d1\u9001\u7684\u65f6\u95f4\r\n\u00a0 \u00a0 time_local = time.localtime(ticks)\r\n\u00a0 \u00a0 dt = time.strftime(\"%Y-%m-%d %H:%M:%S\", time_local)\u00a0\u00a0# \u683c\u5f0f\u5316\u65e5\u671f\r\n\u00a0 \u00a0 # \u5c06\u6d88\u606f\u6807\u8bc6\u548c\u6d88\u606f\u5185\u5bb9\u6dfb\u52a0\u5230\u5b57\u5178\r\n\u00a0 \u00a0 # \u6bcf\u4e00\u6761\u6d88\u606f\u7684\u552f\u4e00\u6807\u8bc6\u4f5c\u4e3a\u952e\uff0c\u6d88\u606f\u7684\u5177\u4f53\u4fe1\u606f\u4f5c\u4e3a\u503c\uff0c\u4e5f\u662f\u4e00\u4e2a\u5b57\u5178\r\n\u00a0 \u00a0 dict&#91;msgId] = {\"info\": info, \"info_type\": info_type, \"name\": name, \"fromUser\": fromUser, \"dt\": dt}\r\n\r\n\r\n@itchat.msg_register(NOTE)\u00a0\u00a0# \u76d1\u542c\u7cfb\u7edf\u63d0\u793a\r\ndef note_info(msg):\r\n\u00a0 \u00a0 # \u76d1\u542c\u5230\u597d\u53cb\u64a4\u56de\u4e86\u4e00\u6761\u6d88\u606f\r\n\u00a0 \u00a0 if '\u64a4\u56de\u4e86\u4e00\u6761\u6d88\u606f' in msg&#91;'Text']:\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0# \u83b7\u53d6\u7cfb\u7edf\u6d88\u606f\u4e2d\u7684Content\u7ed3\u70b9\u503c\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0content = msg&#91;'Content']\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0# Content\u503c\u4e3axml\uff0c\u89e3\u6790xml\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0doc = xml.dom.minidom.parseString(content)\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0# \u53d6\u51famsgid\u6807\u7b7e\u7684\u503c\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0result = doc.getElementsByTagName(\"msgid\")\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0# \u8be5msgId\u5c31\u662f\u64a4\u56de\u7684\u6d88\u606f\u6807\u8bc6\uff0c\u901a\u8fc7\u5b83\u53ef\u4ee5\u5728\u5b57\u5178\u4e2d\u627e\u5230\u64a4\u56de\u7684\u6d88\u606f\u4fe1\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0msgId = result&#91;0].childNodes&#91;0].nodeValue\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0# \u4ece\u5b57\u5178\u4e2d\u53d6\u51fa\u5bf9\u5e94\u6d88\u606f\u6807\u8bc6\u7684\u6d88\u606f\u7c7b\u578b\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0msg_type = dict&#91;msgId]&#91;'info_type']\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0if msg_type == 'Recording':\u00a0 \u00a0 # \u64a4\u56de\u7684\u6d88\u606f\u4e3a\u8bed\u97f3\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0recording_info = dict&#91;msgId]&#91;'info']\u00a0\u00a0# \u53d6\u51fa\u6d88\u606f\u6807\u8bc6\u5bf9\u5e94\u7684\u6d88\u606f\u5185\u5bb9\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0info_name = dict&#91;msgId]&#91;'name'] # \u53d6\u51fa\u6d88\u606f\u6587\u4ef6\u540d\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0fromUser = dict&#91;msgId]&#91;'fromUser'] # \u53d6\u51fa\u53d1\u9001\u8005\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0dt = dict&#91;msgId]&#91;'dt'] # \u53d6\u51fa\u53d1\u9001\u65f6\u95f4\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0recording_info(temp + '\/' + info_name) # \u4fdd\u5b58\u8bed\u97f3\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u62fc\u63a5\u63d0\u793a\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0send_msg = '\u3010\u53d1\u9001\u4eba:\u3011' + fromUser + '\\n' + '\u53d1\u9001\u65f6\u95f4:' + dt + '\\n' + '\u64a4\u56de\u4e86\u4e00\u6761\u8bed\u97f3'\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0itchat.send(send_msg, 'filehelper') # \u5c06\u63d0\u793a\u6d88\u606f\u53d1\u9001\u7ed9\u6587\u4ef6\u52a9\u624b\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u53d1\u9001\u4fdd\u5b58\u7684\u8bed\u97f3\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0itchat.send_file(temp + '\/' + info_name, 'filehelper')\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0del dict&#91;msgId] # \u5220\u9664\u5b57\u5178\u4e2d\u5bf9\u5e94\u7684\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0print(\"\u4fdd\u5b58\u8bed\u97f3\")\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0elif msg_type == 'Text':\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0text_info = dict&#91;msgId]&#91;'info'] # \u53d6\u51fa\u6d88\u606f\u6807\u8bc6\u5bf9\u5e94\u7684\u6d88\u606f\u5185\u5bb9\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0fromUser = dict&#91;msgId]&#91;'fromUser'] # \u53d6\u51fa\u53d1\u9001\u8005\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0dt = dict&#91;msgId]&#91;'dt'] # \u53d6\u51fa\u53d1\u9001\u65f6\u95f4\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u62fc\u63a5\u63d0\u793a\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0send_msg = '\u3010\u53d1\u9001\u4eba:\u3011' + fromUser + '\\n' + '\u53d1\u9001\u65f6\u95f4:' + dt + '\\n' + '\u64a4\u56de\u5185\u5bb9:' + text_info\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u5c06\u63d0\u793a\u6d88\u606f\u53d1\u9001\u7ed9\u6587\u4ef6\u52a9\u624b\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0itchat.send(send_msg, 'filehelper')\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0del dict&#91;msgId] # \u5220\u9664\u5b57\u5178\u4e2d\u5bf9\u5e94\u7684\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0print(\"\u4fdd\u5b58\u6587\u672c\")\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0elif msg_type == 'Picture':\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0picture_info = dict&#91;msgId]&#91;'info'] # \u53d6\u51fa\u6d88\u606f\u6807\u8bc6\u5bf9\u5e94\u7684\u6d88\u606f\u5185\u5bb9\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0fromUser = dict&#91;msgId]&#91;'fromUser'] # \u53d6\u51fa\u53d1\u9001\u8005\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0dt = dict&#91;msgId]&#91;'dt'] # \u53d6\u51fa\u53d1\u9001\u65f6\u95f4\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0info_name = dict&#91;msgId]&#91;'name'] # \u53d6\u51fa\u6587\u4ef6\u540d\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0picture_info(temp + '\/' + info_name) # \u4fdd\u5b58\u56fe\u7247\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u62fc\u63a5\u63d0\u793a\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0send_msg = '\u3010\u53d1\u9001\u4eba:\u3011' + fromUser + '\\n' + '\u53d1\u9001\u65f6\u95f4:' + dt + '\\n' + '\u64a4\u56de\u4e86\u4e00\u5f20\u56fe\u7247'\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0itchat.send(send_msg, 'filehelper') # \u5c06\u56fe\u7247\u53d1\u9001\u7ed9\u6587\u4ef6\u52a9\u624b\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0# \u53d1\u9001\u4fdd\u5b58\u7684\u8bed\u97f3\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0itchat.send_file(temp + '\/' + info_name, 'filehelper')\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0del dict&#91;msgId] # \u5220\u9664\u5b57\u5178\u4e2d\u5bf9\u5e94\u7684\u6d88\u606f\r\n\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0print(\"\u4fdd\u5b58\u56fe\u7247\")\r\n\r\nitchat.run()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0a\u4e3a\u4ee3\u7801\uff0c\u76f4\u63a5\u590d\u5236\u5230python\u5373\u53ef\u8fd0\u884c\uff0c\u767b\u5f55\u65b9\u5f0f\u4e3a\u626b\u7801\u767b\u5f55\uff0cPC\u534f\u8bae<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">itchat\u4e3aitchat-uos\uff0cpip\u5373\u53ef<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0a\u4e3a\u4ee3\u7801\uff0c\u76f4\u63a5\u590d\u5236\u5230python\u5373\u53ef\u8fd0\u884c\uff0c\u767b\u5f55\u65b9\u5f0f\u4e3a\u626b\u7801\u767b\u5f55\uff0cPC\u534f\u8bae itchat\u4e3aitchat-uos\uff0cpip\u5373\u53ef<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-sort"],"_links":{"self":[{"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":1,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":42,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/posts\/41\/revisions\/42"}],"wp:attachment":[{"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yiyuanlt.cn\/index.php\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}