前言

最近一段时间在研究微信机器人,看到一个python版的感觉很有趣,就打算开始研究littlecodersh/ItChat

但是出现了下面的报错

xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4

遂开始着手解决。

正文

1. 具体报错

具体报错如下,

Getting uuid of QR code.
Downloading QR code.
Please scan the QR code to log in.
Please press confirm on your phone.
Traceback (most recent call last):
  File "/Users/river/Desktop/telegram/test.py", line 3, in <module>
    itchat.auto_login()
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/site-packages/itchat/components/register.py", line 35, in auto_login
    self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/site-packages/itchat/components/login.py", line 53, in login
    status = self.check_login()
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/site-packages/itchat/components/login.py", line 137, in check_login
    if process_login_info(self, r.text):
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/site-packages/itchat/components/login.py", line 172, in process_login_info
    for node in xml.dom.minidom.parseString(r.text).documentElement.childNodes:
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/xml/dom/minidom.py", line 2000, in parseString
    return expatbuilder.parseString(string)
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/xml/dom/expatbuilder.py", line 925, in parseString
    return builder.parseString(string)
  File "/Users/river/miniforge3/envs/nlp/lib/python3.10/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4

查了Github 的issues,《 我在登录后出现'xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4' 怎么解决 #995 》,发现主要问题是“为了保障你的账号安全,暂不支持使用网页版微信。你可以前往微信官网”,如下:

image.png

这就比较麻烦了,但是偶尔发现一篇文章谈及如果继续使用微信web端登录《解决微信网页版登录限制 支持Chrome/Edge/Firefox》。具体解决办法就是据说统信UOS版本的微信就是网页版套壳的,这个浏览器扩展应该是改了一些参数模拟成统信UOS端微信登录,只需要设置一些参数模拟成统信UOS端登录微信即可。

image.png

有意思,多亏了它(统信操作系统),我才能够继续用这个python写的微信机器人(不知道还能坚持多久),如果未来坚持不了多久了可以转去Node端(nodeWechat/wechat4u),这个Node端其声称所有微信均可使用,不知道是说所有微信号,还是微信端(PC、移动、web)。

在我想着该如何绕过的时候,我发现了这样一个Github,why2lyj/ItChat-UOS,有人已经用模仿uos写微信web端的绕过了,而且是7年前了,好久!

只需要安装这个命令

pip install itchat-uos==1.5.0.dev0

2. 具体解决

那么解决办法很简单了,直接

pip install itchat # 如果你没有安装itchat
pip install itchat-uos==1.5.0.dev0 

总结

只能说,Github,全球最大同性交友网站,你需要的什么都能在上面找到,hhh(笑。

问题解决,开始搞机器人!

参考

[1] littlecodersh/ItChat
[2] 我在登录后出现'xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4' 怎么解决 #995
[3] 解决微信网页版登录限制 支持Chrome/Edge/Firefox
[4] 统信操作系统
[5] nodeWechat/wechat4u

Q.E.D.


立志做一个有趣的碳水化合物