python读取163邮件内容_python 3.x 163邮箱登陆,邮件读取
import urllib.request
import urllib.parse
import http.cookiejar,re
opener = None
# 带Cookie访问
def openurl(parms):
global opener
if opener == None:
#cookie设置
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
ret = opener.open(parms)
return ret
def 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] = ''
#获取syscheckcode
pre_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')
# 获取随机key
thisurl = 'http://entry.mail.163.com/coremail/fcg/ntesdoor2?verifycookie=1&lightweight=1&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)
# 获取sid
thisurl = 'http://mail.163.com/js6/main.jsp?sid=' + sid
html = 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,这里是抽取的第一封邮件的key
html = openurl(thisurl).read().decode('utf-8')
patt = re.compile(r'.*?name="id">(.*?).*?')
key = patt.search(html);
key = key.group(1)
# 获取邮件内容
thisurl = 'http://mail.163.com/js6/read/readhtml.jsp?mid=' + key
html = openurl(thisurl).read().decode('utf-8')
# 测试输出
print(html)
# 假设返回假,,这个验证可以最后加上
flag = True
#if 'succeedhandle_login' in html:
#flag = True
return flag
# 这里是开始,我懒得缩进了 if __name__ == '__main__':
# 用户名 及 密码
while True:
user = input('input your username:')
pwd = input('input your password:')
if len(user) != 0 and len(pwd) != 0:
break
print('输入错误')
# 测试网站
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就能获得每一封邮件了。
整个代码是从一份功能代码中抽出来,因为剩下的内容涉及xxx,所以不发了。
python读取163邮件内容_python 3.x 163邮箱登陆,邮件读取相关推荐
- python 读取邮件内容_Python 如何提取邮件内容
欢迎关注[无量测试之道]公众号,回复[领取资源], Python编程学习资源干货. Python+Appium框架APP的UI自动化. Python+Selenium框架Web的UI自动化. Pyth ...
- python 读取邮件内容_python获取邮件内容(邮件内容为html)
用python获取邮件内容比较简单,直接用现成的imap和pop3包即可,但是有时候邮件的内容不是plainText而是html甚至是一个url链接,原本的操作流程是点击url获取内容(比如csv等等 ...
- python获取邮件内容_python 接收邮件获取邮件内容
收取邮件有两种协议,POP3和IMAP,POP3相对于IMAP功能较少无法对邮件进行更深层次的操作,因此本文使用IMAP协议收取邮件.python提供了很多收邮件的模块,本文使用imaplib来接收邮 ...
- python爬取邮件内容_python 接收邮件获取邮件内容
收取邮件有两种协议,POP3和IMAP,POP3相对于IMAP功能较少无法对邮件进行更深层次的操作,因此本文使用IMAP协议收取邮件.python提供了很多收邮件的模块,本文使用imaplib来接收邮 ...
- python实现邮件客户端_python socket实现web服务器,邮件客户端
本博客是针对,<计算机网络自顶向下方法>一书第二章后面套接字编程作业, 所有代码均已上传至我的github:https://github.com/inspurer/ComputerNetw ...
- python修改zip文件内容_python操作zip文件
转自: 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt. import zipfile # 默认模式r,读 az ...
- hutool 读取扩展名文件_Python OpenCV视觉智能感知第一讲——读取摄像头或视频文件并播放显示...
Python OpenCV视觉智能感知 第一讲--读取摄像头或视频文件并播放显示 本部分内容将深入.全面.详细地介绍如何使用Anaconda Python和OpenCV读取摄像头或视频文件,并进行播放 ...
- 邮件内容会留在服务器吗,outlook的邮件最长可以保存多久,去
outlook的邮件最长可以保存多久,去年的邮件还可以找到吗?如何设置不自动删除过期的? 问题来自: 2020-01-01 0 / 200 提交回答 2021-07-30 关于 outlook的邮件最 ...
- electron 读取文件夹内容_如何使用Electron Framework选择,读取,保存,删除或创建文件...
本文概述 为了处理文件(CRUD)的生命周期, 我们将使用对话框和文件系统组件. 对话框模块提供了用于显示本机系统对话框(例如打开文件或警报)的API, 因此Web应用程序可以提供与本机应用程序和No ...
- python读取大文件内容_Python模块linecache处理大文件
linecache模块简介 Python处理大文件需要用到Linecache模块. linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去 ...
最新文章
- 【数字信号处理】线性常系数差分方程 ( “ 线性常系数差分方程 “ 与 “ 线性时不变系统 “ 关联 | 根据 “ 线性常系数差分方程 “ 与 “ 边界条件 “ 确定系统是否是 线性时不变系统方法 )
- Win下PHP环境Eclipse PDT+XAMPP+XDebug部署
- findfirstfile函数为什么不能遍历doc_编程之美:IO多路复用——记性不好的poll函数...
- synchronized的用法
- 算法题目——多米诺骨牌问题(POJ-2663)
- LeetCode 1891. 割绳子(二分查找)
- C语言 do while 和 while 循环 - C语言零基础入门教程
- 菜鸟python 正则表达式_python基础知识(进阶篇--正则表达式)
- linux 内核模块发送udp,在内核模块级缓冲UDP的问题(当然不是SOCKET编程了。)
- 视音频格式基础知识视频压缩
- 算法学习(三)堆排序
- I/O资源如何映射到内核虚拟空间
- 荐书|图解深度学习与神经网络:从张量到TensorFlow实现
- 如何使用 身份证归属地查询API
- java SpringBoot 对接支付宝 APP支付 证书模式及非证书模式
- Oxyplot实时绘图学习笔记(下)
- Haproxy启动故障:Starting proxy:cannot bind socke
- 工作第七周:提升版权意识,共塑良好共享氛围
- UE4 动画过渡同步组(解决动画过渡不合理问题)
- JQUREY DOM 操作详解
热门文章
- 大话拒绝服务攻击:DoS、DDoS、LDoS——“直男、舔狗和渣男”
- 快捷命令查看电脑系统信息
- GCTF 2017 Web 补题 By Assassin [持续更新--抄大佬wp]
- 神奇代码岛BOX获500万美元天使轮融资 构建编程少年元宇宙
- Spring| AOP之 引入(Introductions)
- EOJ 1224 简单迷宫问题 bfs
- AcWing 导弹防御系统 Python代码
- Python+MySQL+云服务器 定时爬取B站日榜与微博热搜榜信息并保存至数据库
- JavaScript大师Nicholas C. Zakas又一大作出中文版了
- 系统版本aplpha,Beta等表示的意思