import  urllib.request
import  urllib.parse
import  http.cookiejar,reopener = None# 带Cookie访问
def openurl(parms):global openerif opener == None:#cookie设置cj =  http.cookiejar.CookieJar()opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))ret = opener.open(parms)return retdef login_163(**parms):#初始化parms_key = ['domain','password','username']arg = {}for key in parms_key:if key in parms:arg[key] = parms[key]else:arg[key] = ''#获取syscheckcodepre_login = arg['domain']html = openurl(pre_login).read().decode('utf-8')patt = re.compile(r'.*?name=syscheckcode.*?value="(.*?)".*?')syscheckcode = patt.search(html)if not syscheckcode:raise Exception('GET syscheckcode Fail!')syscheckcode = syscheckcode.group(1)#登陆postdata = {'syscheckcode':syscheckcode,'password':arg['password'],'username':arg['username'],}postdata = urllib.parse.urlencode(postdata)postdata = postdata.encode('utf-8')req = urllib.request.Request(url= arg['domain'],data=postdata)html = openurl(req).read().decode('utf-8')thisurl  = 'http://reg.163.com/Main.jsp?username=' + arg['username']html = openurl(thisurl).read().decode('utf-8')# 获取随机keythisurl = 'http://entry.mail.163.com/coremail/fcg/ntesdoor2?verifycookie=1&amp;lightweight=1&amp;from=urs'html = openurl(thisurl).read().decode('utf-8')patt = re.compile(r'.*?@163.com&sid=(.*?)&from.*?')sid = patt.search(html);sid = sid.group(1)# 获取sidthisurl = 'http://mail.163.com/js6/main.jsp?sid=' + sidhtml = openurl(thisurl).read().decode('utf-8')thisurl = 'http://mail.163.com/js6/s?sid=' + sid + '&func=mbox:listMessages&topNav_mobileIcon_show=1&TopTabReaderShow=1&TopTabLofterShow=1'# 获取邮件key --- 可以读取看看,实际上是一个类似xml的表,所有的邮件都在这里,我们需要的是key,这里是抽取的第一封邮件的keyhtml = openurl(thisurl).read().decode('utf-8')patt = re.compile(r'.*?name="id">(.*?)</string>.*?')key =  patt.search(html);key = key.group(1)# 获取邮件内容thisurl = 'http://mail.163.com/js6/read/readhtml.jsp?mid=' + keyhtml = openurl(thisurl).read().decode('utf-8')# 测试输出print(html)# 假设返回假,,这个验证可以最后加上flag = True#if 'succeedhandle_login' in html:#flag = Truereturn flag# 这里是开始,我懒得缩进了 if __name__ == '__main__':
# 用户名 及 密码
while True:user = input('input your username:')pwd = input('input your password:')if len(user) != 0 and len(pwd) != 0:breakprint('输入错误')# 测试网站
dom='https://reg.163.com/logins.jsp'
try:flag = login_163(username=user,password=pwd,domain=dom)if not flag:print('读取失败!')exit(0)else:print('读取成功')except Exception as e:print('Error:',e)

反正大致过程就是上面那样,,,很标准的 post登陆,之后 163 的页面比较特殊,具体可以自己去试试。

那个key页面是抓包之后找到的,通过那个key就能获得每一封邮件了。

python 3.x 163邮箱登陆,邮件读取相关推荐

  1. python webdriver 等待网页已登录_python基础编程:python+selenium实现163邮箱自动登陆的方法...

    本文介绍了 让我们先来预览一下代码运行效果吧: 首先分析163邮箱登陆页面的网页结构(按F12或单击鼠标右键选择审查元素) 1.定位到登陆框(注意登录框是一个iframe,如果不定位到iframe的话 ...

  2. python 实现使用163邮箱发送有图片的邮件

    周末温习下python,正好最近在做监控,想着 给163邮箱发邮件,记录下来,方便备查. 邮件发送必须要知道邮件的 传输协议 SMTP SMTP (Simple Mail Transfer Proct ...

  3. mail.163邮箱登陆,邮件是什么意思如何获得电子邮箱?

    今天收到好多新朋友的留言,说让给讲讲如何获得电子邮箱,以及邮箱登陆的渠道有哪些.一想,这正不是我拿手的吗,立马整理好了分享给大家. 首先,邮箱是当下重要的办公工具,为各行各业的办公需求提供了很大的帮助 ...

  4. python自动化登录163邮箱发送邮件

    记录第一次自动化发送邮件成功 第一步 准备好 HTMLTestRunner.py文件放在下面这个路径 第二步 创建 "Mail163.yaml" 存放信息 testURL: 'ht ...

  5. 163邮箱登陆忘记密码怎么办?163手机邮箱怎么登录?

    163邮箱登陆忘记密码怎么办?163手机邮箱怎么登录?邮箱作为一款现代主要通讯工具,为工作.生活带来了很多便利,深受广大用户喜爱.近期,有朋友提问道,邮箱里有很多重要资料,长期未登录,不小心忘记密码了 ...

  6. 怎样使用QQ邮箱代收163邮箱的邮件

    参考:网易163邮箱帮助 首先介绍一下什么是POP3,SMTP和IMAP POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到I ...

  7. python模拟登录163邮箱_python模拟登陆163邮箱并下载邮件内容(第三版代码片段)

    python模拟登陆163邮箱并下载邮件内容(第三版代码片段) 注意: 1 由于163邮箱有众多版本,所以登录请求URL,邮件URL等可能也不太一样,下面是163的简约3.0 2 代码缺乏错误处理能力 ...

  8. python登录网易163邮箱,爬取邮件

    1 from common importMyRequests,LoggerUntil,handle_exception2 3 myRequests.update_headers({ 'Accept': ...

  9. Python+Selenium实现自动登录163邮箱导出邮件可按时间和内容进行筛选

    文章目录 描述 一.打码平台 二.实现方法 1. 过点选验证 2. 全部代码 总结 备注 描述 此脚本可以实现网易163邮箱的自动登录,自动过点选验证,按时间和关键字筛选内容,最后导出邮件 一.打码平 ...

最新文章

  1. 【C++】C++11 STL算法(五):设置操作(Set operations)、堆操作(Heap operations)
  2. 阿里云服务器CentOS6.9 nexus私服使用
  3. ubuntu下安装java和tomcat安装
  4. python打包工具报错_Python打包发布神器—Pyinstaller
  5. 关于JAVA并发编程你需要知道的——硬件篇
  6. Docker 常见问题汇总
  7. php中gd为什么是乱码的,php gd库中文乱码怎么解决?
  8. pcb设计等长线误差_“背锅”盲区,光时域反射仪延长线实际使用测评
  9. Audio 加载hal (loadHwModule)
  10. 烧录superboot.bin 到 友善之臂mini2440 开发板
  11. java调用js模板引擎_JavaScript模板引擎Template.js使用详解
  12. conda 查看现有虚拟环境 - 删除现有虚拟环境
  13. 安卓预装软件卸载教程
  14. http://level3.tasteless.eu/ 获得服务器目录及其内部文件信息
  15. Ubuntu上实现蓝牙串口通讯(SPP)
  16. Bootstrap3 Font Awesome 字体图标的基本图标
  17. 怎么在12306上选择上中下卧铺
  18. 二分类神经网络结果准确率50%,loss一直在0.69的解决方法
  19. 呼叫中心客服系统业务场景应用价值
  20. linux ora 01157,案例:Oracle报错ORA-01157 ORA-01110 数据启动报错RMAN恢复数据库思路

热门文章

  1. 【图像分割】FCN学习笔记小整理
  2. 华为手机计算器程序员模式_华为手机坏了需要维修时,一定记得开启这个模式,防止信息泄露!...
  3. 用Leangoo领歌Scrum敏捷开发工具管理产品路线图?
  4. 【ISO15031_OBD诊断】-0.1-Service服务概述
  5. 补单平台淘宝补单计划
  6. 2021年一份超全的影视后期海量资源,从入门到进阶资料,要的速领(持续更新)
  7. 全球与中国AI在制药领域的应用市场深度研究分析报告
  8. python 凯利公式_凯利公式的模拟验证
  9. BOOTSTRAP4的栅格系统详解
  10. Design System Application - Chapter 1 网格系统 Grid System