from common import MyRequests,LoggerUntil,handle_exception

 myRequests.update_headers({ 'Accept':'text/javascript',})    ##这个地方加入accept了,主要是在邮件提取那里,不加入这个返回的是xml格式,加入后返回json格式,这样在提取方面更容易一些。
url = 'https://mail.163.com/entry/cgi/ntesdoor?funcid=loginone&language=-1&passtype=1&iframe=1&product=mail163&from=web&df=email163&race=-2_262_-2_hz&module=&uid={0}&style=-1&net=t&skinid=null'.format('13148804507@163.com')
datax = {
'username':'13148804507@167.com',
'url2':'http://email.163.com/errorpage/error163.htm',
'savalogin':'',
'password':'123456789abcd',
} text= myRequests.post(url,data = datax)
#到这一步已经登录ok了,可以打印cookie看看就能知道了。 抓取邮件,
请求完成后,打印text 得到
<html><head><script type="text/javascript">top.location.href = "http://mail.163.com/js6/main.jsp?sid=iCApYbICzSWVFIFqHTCCdtntXqDYrVhB&df=email163";</script></head><body></body></html> sid =re.search('sid=(.*?)&',resp.text).group(1) #使用正则把sid取出来
url = 'http://mail.163.com/js6/s?sid={sid}&func=mbox:listMessages&LeftNavfolder1Click=1&mbox_folder_enter=1'.format(sid=sid)
datax = {'var':'<?xml version="1.0"?><object><int name="fid">1</int><string name="order">date</string><boolean name="desc">true</boolean><int name="limit">20</int><int name="start">0</int><boolean name="skipLockedFolders">false</boolean><string name="topFlag">top</string><boolean name="returnTag">true</boolean><boolean name="returnTotal">true</boolean></object>'}
print myRequests.post(url, data=datax) #这样就打印出所有邮件了。然后筛选邮件,找出与信用卡相关的邮件,做征信风控用。
其中myrequests是从MyRequests类实例化的,因为经常要进行网络请求,所以里面封装了 请求 重试 日志打印 异常处理 下载验证码 验证码重命名 cookiejar和cookie dict的相互转换 更新headers 网页编码格式处理 和内容检查这些实例方法或者静态方法。读者可以自己用requests的session类来代替我这个。

MyRequests大概就是这样。

然后还要鄙视一下有的人,他做好了这个163登录,叫他发出来,我已经表示愿意掏100元作为报酬,他居然想讹诈1000元。那就让他发霉吧,如果是一个新东西,你没做过给更多的钱,这还差不多,自己做好了不分享还不是发霉。
本人分享这个方法,简单直接,登录只用请求一次。今天是2017年11月8日,可以用这登录163邮箱,给怕过期的网友说明下代码的时间。
重点说明一下,我这使用的是email163.com登录的。
不是使用mail163.com登陆的,一定要注意这个,千万不要用这个mail163.com登录,弄了好几个小时还没登陆上,加上有网易网盾验证码。

最新文章

  1. git 版本回退
  2. python中的浅拷贝和深拷贝
  3. Mysql备份系列(1)--备份方案总结性梳理
  4. log4net--不可多得的开源日志记录组件
  5. SecureCRT使用小技巧
  6. android通知栏总结
  7. Activity的创建和使用
  8. 我的iOS-App
  9. 百度将与W3C中国召开MIP技术研讨会
  10. mysql group by 过滤字段 只能在SELECT 后面出现,不能写其他字段 报错解决 关键字 sql_mode=only_full_group_by
  11. [译] iOS 11.4.1 Beta:全新的USB限制模式
  12. 20165314 学习基础和C语言基础调查
  13. XSS笔记
  14. Service_name 和Sid的区别
  15. UMI标签学习【转载】
  16. Day 4 list 列表的使用方法
  17. golang的https服务器
  18. 基于python的测试框架behave----context
  19. .net core in Docker 部署方案(随笔)
  20. 扩展mysql - 手把手教你写udf

热门文章

  1. [uart]设置linux 串口的block方式
  2. drupal 不错的网址
  3. 《VS2010/MFC编程入门教程》——读书笔记
  4. RootKit
  5. MYSQL查询前30条数据
  6. Mac和Linux下pip更换源
  7. moodle中的完形填空题的文本编写方法
  8. 【总结】牛客职播第十期:程盟有你,way来可期
  9. 转载: 让我们聊聊Erlang的nif中资源的安全释放
  10. STUN,TURN,ICE