Python查询Gmail未读邮件报错AttributeError: module 'http'无'client'属性
问题解决方案
- 首先解决你遇到的
AttributeError: module 'http' has no attribute 'client'报错:
这个报错的核心原因是你的项目目录下存在和Python标准库重名的http.py文件,导入模块时会优先读取你本地的这个文件,覆盖了标准库的http模块,导致找不到client属性。你只需要把本地的http.py重命名为其他不冲突的名称,同时删除同目录下的__pycache__缓存文件夹,重新运行脚本即可解决该报错。 - 修复你的代码中其他逻辑错误,否则报错解决后依然无法正常运行:
- 类的实例方法必须传入
self作为第一个参数,你定义的unread方法缺少该参数,调用时会抛出参数不匹配的错误,修改为:
def unread(self):- BeautifulSoup解析需要传入响应的文本内容,你直接传入了requests返回的Response对象本身,会导致解析失败,修改为:
info = BeautifulSoup(site.text, 'html.parser')- Gmail网页版需要账号登录认证才能访问收件箱内容,你直接发送GET请求只会拿到登录页的源码,不存在你要查找的
bsU类的元素,也无法获取未读邮件数量。建议直接调用Gmail官方API走OAuth认证后获取邮件数据,不要直接爬取网页版。
- 类的实例方法必须传入
内容的提问来源于stack exchange,提问作者Kerem Güven
相关产品推荐
相关产品推荐

