【爬虫】python解决QQ邮箱查询接口的中文编码问题

来源:互联网 发布:智能建筑网络通信系统 编辑:程序博客网 时间:2024/05/20 20:58

使用Python的requests来模拟登录QQ邮箱后进行邮件查找。因为requests的get方法支持params参数,能自动编码查询字符串。而且默认的是utf-8编码


QQ邮箱邮件搜索接口

    def _searchCredit(self, filter_name):        url = 'https://mail.qq.com/cgi-bin/mail_list'        params = {            'advancesearch': '0',            'folderid': 'all',            'loc': 'frame_html,,,6',            'page': '0',            'receiver': filter_name,            's': 'search',            'searchmode': '',            'sender': filter_name,            'sid': self.sid,            'subject': filter_name,            'topmails': '0'        }       res = self.s.get(url, params=params, headers=self.base_header)
       return res

filter_name = u'招商银行信用卡电子账单'


得到的结果:

sender=%E6%8B%9B%E5%95%86%E9%93%B6%E8%A1%8C%E4%BF%A1%E7%94%A8%E5%8D%A1%E7%94%B5%E5%AD%90%E8%B4%A6%E5%8D%95
经过验证,这是utf-8的url编码

filter_name=u'招商银行信用卡电子账单'.encode('gbk')

的时候,得到

sender=%D5%D0%C9%CC%D2%F8%D0%D0%D0%C5%D3%C3%BF%A8%B5%E7%D7%D3%D5%CB%B5%A5
这才是对的。

参考资料:

代码分析Python requests库中文编码问题 | 峰云就她了

原创粉丝点击