如何正确使用 Python 获取微信网页版个人用户信息?
获取微信网页版自身用户信息
本篇文章讨论了如何获取微信网页版的个人用户信息。本文提供了python代码示例,但遇到问题无法获取数据。
问题分析
分析代码后发现,问题在于 params 和 headers 的使用。原来代码中 params 使用了 json.loads 函数进行转换,但正确的方法是直接使用 json。此外,headers 也遗漏了部分必要信息。
立即学习“Python免费学习笔记(深入)”;
解决方案
为了解决问题,需要将 params 改为 json,并去掉 headers。具体修改如下:
wxinitresult = wxreq.post(url=urlformat, json=json.loads(param), timeout=8)
最终代码
修改后的代码如下:
def recentContacts(): """ 获取自己的user 信息 """ hhh = { "Content-Type": "application/json;charset=UTF-8", "Cookie": "mm_lang=zh_CN; MM_WX_NOTIFY_STATE=1; MM_WX_SOUND_STATE=1; wxuin=183995159; webwxuvid=2; last_wxuin=183995159; refreshTimes=2; wxpluginkey=1630297861; wxsid=ZfCC7CvUPdWCj9yj; webwx_data_ticket=gScyj+dKaknZ9Y3PAVccmnAa; webwx_auth_ticket=CIsBEKea/4MFGoABJMGUI5+nhhH2bDPd4F1EtWzR9AiGSxCX+yj7Hi+FS17g/bm0h3uspVxMKjuik01E82rsO7LKMFaqdbqoeOzylwB6N5pLxbdcGumSvuh2WK/gdutjWyJQMXdHk44V/Ju/52nSWIYfT3WT3IzrSePKOjAjgfXfEizf5lXBRI0xG1g=; login_frequency=2; wxloadtime=1630302465_expired", "Host": "wx.qq.com", "Origin": "https://wx.qq.com", "Referer": "https://wx.qq.com/?&lang=zh_CN", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36", } param = '{"BaseRequest":{"Uin":"1839925159","Sid":"ZfCC7CvUP2dWCj9yj","Skey":"@2323423423","DeviceID":"e539289469584078"}}' urlFormat = f'https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=1785122109&lang=zh_CN&pass_ticket=7JHN0698%252BPMtUbcJnHBA6vTsz6hzpPPWMXJaPZDOQDA%253D' wxInitResult = wxReq.post(url=urlFormat, json=json.loads(param), timeout=8) wxInitResult.encoding = "utf-8" print(wxInitResult.text) if __name__ == "__main__": recentContacts()
经修改后,代码可以正常获取微信网页版的用户信息。
以上就是如何正确使用 Python 获取微信网页版个人用户信息?的详细内容,更多请关注其它相关文章!