目标网址:https://rootsh.com/?v=

目录

一、明确目标

二、分析网页

三、编写代码

(1)申请临时邮箱

(2)读取邮件内容

四、运行测试


一、明确目标

目标明确,根据指定临时邮箱地址,读取邮件最新内容。

二、分析网页

在使用这个问网站的临时邮箱前,需要先申请使用,然后才能接受到邮件信息。

首先打开控制台,监听页面交互请求,先点随机生成一个邮箱,然后点击申请邮箱按钮。

可以发现接口没有加密,这个我们可以直接用python来进行模拟请求申请邮箱。

其次我们注意到,下面有一个轮询请求,应该就是再获取该邮箱是否有接收到新邮件,以便于实时更新到网页上。

这是还没有收到新邮件的response响应结果:

这是已经有新邮件的response响应结果:

可以里面有一个OYaNP1MCiPsW62y9KKHiYQ.eml,感觉上很奇怪,其实并没有,我们在页面上点击已经接收到邮件进去。

可以发现,该参数是获取内容的关键参数,只需要将该参数拼接到该url后面,即可看到邮件内容。 https://rootsh.com/win/zcqo0deb(a)bccto-_-cc/

分析网页结构,我们可以看到邮件内容是被一个div里,我们可以利用html解析到具体的内容。

我们程序分两步来完成整个操作,先编写申请邮箱,然后在编写读取邮件内容

三、编写代码

(1)申请临时邮箱

# 由于网站规则:@bccto.cc 邮箱名只支持字母和数字
def apply_email(email):url = "https://rootsh.com/applymail"payload = "mail={}%40bccto.cc".format(email)headers = {'cookie': '__gads=ID=5057786cfb2c66f4-22ee69ff34cf0094:T=1637486405:RT=1637486405:S=ALNI_MZS8hasvI07J7Teld1qevXJCEh0xw; UM_distinctid=17d41d57d367ab-0d02c53f45975b-3354417a-1fa400-17d41d57d37cdb; CNZZDATA3645431=cnzz_eid%3D360129947-1637481214-https%253A%252F%252Frootsh.com%252F%26ntime%3D1637481214; mail="2|1:0|10:1637487469|4:mail|40:emNxbzBkZWJAYmNjdG8uY2N8MTYzNzQ4NzQ2OQ==|62c43aa0a54d521203d369274b62eba2c730bd23b27fe60eb51a802660f21627"; time="2|1:0|10:1637487744|4:time|4:MA==|8194e1de83b3bb8b481eb938676423a82aa4e3da47192827061e5cd488c5d6b9"; mail="2|1:0|10:1637487791|4:mail|40:dmsyeHY5OTdAYmNjdG8uY2N8MTYzNzQ4Nzc5MQ==|bef8ce72e198df89190399718d828ad37d720ef595e0d0b08e3b077deda76f74"; time="2|1:0|10:1637487791|4:time|16:MTYzNzQ4Nzc5MQ==|6d8df9d0d7eaea212eb808c3e68325727969c5223ae8b551256bc8cb57574ad1"','origin': 'https://rootsh.com','accept-language': 'zh-CN,zh;q=0.9','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3877.400 QQBrowser/10.8.4533.400 chrome-extension','content-type': 'application/x-www-form-urlencoded; charset=UTF-8',}try:response = requests.post(url, headers=headers, data=payload).json()if response['success'] == 'true':print("临时邮箱:{}@bccto.cc,申请成功!".format(email))except:print("临时邮箱:{}@bccto.cc,申请失败!".format(email))

(2)读取邮件内容

# 获取邮件
def get_email(email):url = "https://rootsh.com/getmail"payload = "mail={}%40bccto.cc".format(email)headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36','content-type': 'application/x-www-form-urlencoded; charset=UTF-8',}try:response = requests.post(url, headers=headers, data=payload).json()uid = response["mail"][0][-2]return pase_html(email, uid)except:pass# 解析html
def pase_html(email, uid):url = "https://rootsh.com/win/{}(a)bccto-_-cc/{}".format(email, uid)print(url)headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36','accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','accept-language': 'zh-CN,zh;q=0.9'}html = requests.get(url, headers=headers).textdom = etree.HTML(html)div1 = dom.xpath("/html/body/div[1]/text()")div2 = dom.xpath("/html/body/div[2]/text()")return "".join(div1) + "".join(div2)

四、运行测试

【第5篇】Python爬虫实战-读取临时邮箱内容相关推荐

  1. python爬虫——实战篇

    python爬虫--实战篇 2021.7.20晚已更新 注:注释和说明已在代码中注释 python爬虫实战篇 笔趣阁小说及其网址爬取 4k图片网站图片爬取 简历模板爬取 自动填体温小程序 待补充 笔趣 ...

  2. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  3. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  4. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

  5. 线程,协程对比和Python爬虫实战说明

    此文首发于我的个人博客:线程,协程对比和Python爬虫实战说明 - zhang0peter的个人博客 这篇文章写的是我对线程和协程的理解,有错误之处欢迎指出. 举一个餐馆的例子.我们把一个餐厅当做一 ...

  6. python爬虫项目-32个Python爬虫实战项目,满足你的项目慌

    原标题:32个Python爬虫实战项目,满足你的项目慌 爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬 ...

  7. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

  8. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  9. Python爬虫实战(4):抓取淘宝MM照片

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

最新文章

  1. Sequence(组合数学,集合不同元素的个数)
  2. golang break label 与goto label
  3. CentOS 7安装Keepalived
  4. 关闭 启动_Steam如何关闭开机自动启动
  5. 【转】正确认识动脉压力波形
  6. 软件设计师备考错题01
  7. django drf 改变retrive的pk查询字段
  8. 两个约翰的故事--读DOOM启示录
  9. CSS Reset Modern CSS Reset
  10. 胡崧讲Dreamweaver视频教程
  11. Sampler 半小时快速搭建PostgreSQL简易监控
  12. C语言项目-后宫选妃系统-第二天
  13. 哪些神句拯救了你的英文邮件?
  14. LINUX IIO子系统分析之六 iio device的驱动开发流程说明
  15. GitLab官网安全更新(2022-06-30)
  16. 移动硬盘提示需要格式化怎么办?数据可以恢复吗
  17. java中equals合if的用法_java中的equals和==
  18. 基于单片机火灾监测报警系统设计-毕设资料
  19. 普通青年、文艺青年、2B青年---最近老火了
  20. uniapp保存图片_uni-app处理图片乱码

热门文章

  1. OpenCart框架运行流程介绍opencart资料链接
  2. MySQL绿色版安装(mysql-5.7.12-win32)
  3. vim与外部文件的粘帖复制
  4. Swift - 邮件发送功能的实现
  5. windows 2003 远程桌面无法使用剪贴板共享纯文本的解决方法(亲测可用)
  6. 解决安装YouCompleteMe与Vim版本不兼容问题
  7. C#中async/await中的异常处理
  8. 【实践】Embedding在腾讯应用宝的推荐实践
  9. 简单理解操作系统中的PV操作
  10. 跨境商家为什么要建自己的独立站?