QQ邮箱操作模拟

QQ邮箱模拟登录(密码、头像、QQ邮箱爬取) 密码登录 from selenium import webdriver #导入webdriver from selenium.webdriver.chrome.options import Options #导入Options import time #导入time option = Options() option.add_argument("User-Agent='Mozilla/5.0 (W... 阅读详情

学技术怎么能不会用服务器,阿里云服务器现8折优惠,还有更多优惠券限量发放
https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=7czske1k&utm_source=7czske1k

项目需要一用程序操作QQ邮箱执行一些操作,现用python实现一套QQ邮箱的操作接口。

登录

通过模拟mail.qq.com登录的http请求,来实现登录操作,主要是获取登录操作所需要的SID,也就是session id. 这个步骤是最关键的,过程也比较复杂, 下面一一道来。

步骤一 加载邮箱的登录页,获取步骤一所要的xlogin地址

在登录的form前有一个iframe标签,它访问了一个地址获取cookie,第一步要做的就是拿到这个地址,访问后保存下返回的cookie,就是下面这货

步骤二 访问check接口,检查是否需要验证码

有些QQ号如果换了登录地区或者多次输错可能就需要输入验证码。在登录页面上,当输入完QQ号后,js代码就会去访问下面这个地址, 检查是否需要验证码(XXXX是QQ号, YYYY可能是访问途径的编号,步骤一可以取到,ZZZZ也是步骤一的cookie)。

"https://ssl.ptlogin2.qq.com/check?regmaster=&pt_tea=1&pt_vcode=0&uin=XXXX&appid=YYYY&js_ver=10131&js_type=1&login_sig=ZZZZ&u1=https%3A%2F%2Fen.mail.qq.com%2Fcgi-bin%2Flogin%3Fvt%3Dpassport%26vm%3Dwpt%26ft%3Dloginpage%26target%3D&r=0.4220805915914432"

返回的结果如下, 括号内第一位如果是’1’的话,就需要验证码,如果是’0’,则第二位就是后面各个接口要用的验证码,第三位是QQ号的十六进制表示,第四位后面接口也要用到,第五位还不清楚。

ptui_checkVC('0','!TIH','\x00\x00\x00\x00\xa4\x3f\xcf\xb1','43bb5c434b0bfd3e7efc71a4deca8de60fc877e5688b5a6a088eeed858d79ff00d7e70e7e795f4eef98dbd8c4cd0110db7938b5833bc4595','0');

步骤三 访问https的登录接口

这是最麻烦的一步,这一步对应的是输入完账号密码后访问的第一个接口,腾讯和程序在这一步用JS对密码进行了多重加密,包括一个RSA加密,丧心病狂。所以,这一步必须实现这一整套的加密算法。本来想用python对着js实现一套的,写了一段放弃了,工作量太大。后面找了在python中执行js代码的方法,找到了python-spidermonkey(这个要到google code下载,github那个我下过来编译不过。

接着把c_login_2.js的代码取出来,找到Encryption和RSA模块,提取出来(先用一些工具格式化,站长之家有),并去掉里面需要DOM的部分(没找到在spidermonkey支持DOM的方法)。最后做一个像下面这样的代码

//两个模块的代码,一千多行
...
en_password = $.Encryption.getEncryption("xxxx_password", "xxxx_salt", "xxxx_vcode",  xxxx_is_save);
en_password;

用将上面整块代码当成字符串,在python中调用。这里的salt就是上面用十六进表示的QQ号。

#!/usr/bin/env python
# encoding: utf-8
import spidermonkey

def get_en_password(password, salt, vcode):
    sm_rt = spidermonkey.Runtime()
    sm_cx = sm_rt.new_context()
    script = lib.js_content.content.replace("xxxx_password", password)
    script = script.replace("xxxx_salt", salt).replace("xxxx_vcode", vcode)
    script = script.replace("xxxx_is_save", "false")
    return sm_cx.eval_script(script)

通过上面的函数获得加密后的密码,并与前面取得的cookie得信息合并起来,访问https://ssl.ptlogin2.qq.com/login接口,获取第四步要访问的地址和cookie。(这完全就是在玩破关游戏啊)。得到类似下面的结果,进入第四步。

"ptuiCB('0','0','https://ssl.ptlogin2.mail.qq.com/check_sig?pttype=1&uin=2755645361&service=login&nodirect=0&ptsigx=0b2c4d8054a80b793c58fda08b89dfc6b6921442063ba599053f23ea9189c853827376c48101859e5031faddcd98b83a76d85ddb860ce5c67b82e0b9943fcf86&s_url=https%4A%2F%2Fen.mail.qq.com%2Fcgi-bin%2Flogin%3Fvt%3Dpassport%26vm%3Dwpt%26ft%3Dloginpage%26target%3D%26account%3D2755645361&f_url=&ptlang=1033&ptredirect=101&aid=522005705&daid=4&j_later=0&low_login_hour=0&regmaster=0&pt_login_type=1&pt_aid=0&pt_aaid=0&pt_light=0&pt_3rd_aid=0','1','Sign-in successful!', '⊥qz●‰');"

步骤四 验证登录信息(大概)

这一步就是访问第三步结果串里的地址。看似很简单,不过这里有个坑,参数中nodirect=0,也就是说,访问后会进行重定向,然后你就取不到想要的cookie和结果串了,花了我两个多小时才发现。

将nodirect=0改成nodirect=1后访问,就能取得所需要的cookie了。

步骤五 访问最终的登录页,取得SID

终于走的BOSS面前了,不容易啊。这一步其实也简单了,直接加上上一步取到的cookie访问https://mail.qq.com/cgi-bin/login?vt=passport&vm=wpt&ft=loginpage&target=&account=XXXX就可以了。

不过这里要注意cookie对应的地址,mail.qq.com与qq.com的cookie是有重复的,要防止qq.com的cookie覆盖mail的。最后拿到一大堆的cookie和sid,登录完成。

使用selenium模拟动态登录QQ邮箱爬取收件箱内容放在CSV文件中 QQ邮箱案例要求实现收件箱列表的爬取,爬取一页信息即可。爬取信息包括发件人、发件人邮箱、邮件标题、收件日期。 阅读详情

相关推荐

selenium登录QQ邮箱(附带滑动解锁)

前言 最近因为工作需要 用selenium做了一个QQ邮箱的爬虫(登录时部分帐号要滑动解锁),先简单记录一下。 这个问题先可以分为两个部分:登录帐号和爬取邮件。python版本3.5.4 1.登录+滑动解锁 其实登录账号的部分本来很简单,用selenium打开QQ邮箱官网:https://mail.qq.com 然后切换frame输入帐号 和密码点击登录即可,但是部分账号,或者可以说是异地登录的Q...

grant 6296

Selenium:实现设置cookie免登录(QQ邮箱为例)

使用环境 Python:3.9.1 Selenium:4.0 Chrome:94.0.4606.61 Windows 10 操作步骤 获取账号cookie 手动打开页面登录后,再通过谷歌插件EditThisCookie来快速获取 EditThisCookie官网:https://www.editthiscookie.com/ EditThisCookie下载:https://download.youkuaiyun.com/download/qq_21238607/33237729 通过ad

R.zb的博客 4772

动态网页 —— 案例: 爬取qq邮箱

其实在前一张博客动态网页——selenium+案例 中已经简单的爬过一遍qq邮箱了。本次呢是在上一次的代码上再完善一下啊。 其实我们很多习惯是养成了的,比如说我们很多人都是打开电脑后会立即登录自己的qq或者微信。反正我是这样???? 甚至很多都是设置了的自动登录。我没有!我怕忘记密码???? 。 所以这次的爬取QQ邮箱,我们会考虑到,如果我们已经登录了qq。因为如果已经登录了,就不会自动跳转到输入账号和密码的界面,而是这个 所以我们就来改动一下吧! 通常出现已有账号登录的情况,我们是直接点击我们的头像

qq_46924416的博客 2万+

php 提取登录QQsid_php模拟登录qq邮箱(curl命令详解)

header("Content-type:text/html;charset=utf-8");$cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; // 设置Cookie文件保存路径及文件名function vlogin($url,$data){ // 模拟登录获取Cookie函数$curl = cu...

weixin_31272749的博客 585

php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍

最近一直在忙,赶在这个假期结束的时候,发表一下此文,为了是让这些源码开源出来当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点咱们策划说要改一下好友邀请里面的显示方式,开始我也没有在意,当时就说行!到了弄这个的时候才发现,UCH里面的这个地方是用漫游型式做的,让人很是无解,啥都改不了!唉,既然都答应了说可以,现在实际情况不行了,所以觉得不好意思,为了快速解决这问题,在GOOGLE,百度上搜了个遍,结果又出忽意料,就一个126邮箱的开源例子,其它的都没有,有一牛哥留着QQ说要其它的源码,可以加QQ买!不对此人评论了!俺花了点时间,整了整,结果就幸运的弄出来了

AWS S3文件上传性能优化:Java SDK多线程与分段上传实战指南

本文详细介绍了如何通过Java SDK优化AWS S3文件上传性能,重点讲解多线程并发上传与分段上传(Multipart Upload)技术的实战应用。通过动态调整分段策略、线程池配置及内存优化技巧,可显著提升大文件上传效率,实测显示组合方案比单线程上传提速近5倍。文章还涵盖加密上传、断点续传等高级场景解决方案,并提供了完整的性能对比测试数据。

d6e7f8的博客 1017

Python 获取cookie只sid值新建测试交流群651385084

Python  获取cookie之sid值: 一:有时候我们接口测试或者有其他需求,想要cookie里面的值,本章就介绍怎么拿cookie的值。 1.登录请求-正则取cookie里面:name为sid  value值为:MTQ4...... 2.即可拿到想要的内容。

王子的博客 1784

单细胞分析R包monocle3服务器安装教程

由于centos7系统yum只能安装到低版本gdal,而monocle3依赖包需要 gdal>2 版本,从gdal官网下载2.4.4版本编译安装。monocle3的安装是通过cole-trapnell-lab安装的,该包挂在github上,需要通过github先安装leidenbase包,需要提前安装devtools包下载工具。接着利用BiocManager安装相应的依赖包,由于这些包的特殊性,所以不要切换到国内Bio_Mirror镜像,否则会找不到,如果一次不成功,缺啥补啥即可。运行 ldconfig。

qq_36608036的博客 1万+

QQ邮箱模拟登录

1、访问下面url获取pt_login_sig:https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/login?vt=passport%26vm=wpt%26ft=loginpage%26target=&style=252、获取初始化信息:https:/

prometheus的博客 3万+

(头歌作业)—6.1 葡萄酒评论分析报告(project)

请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。

2301_80677920的博客 1246

ubuntu18.04安装xenomai3.1(百分百成功版)

ubuntu18.04安装xenomai3.1(百分百成功版),保姆级教学!!!

h542812556sdu的博客 2065

017:Opencv+Selenium模拟QQ邮箱滑块操作

本篇则是用opencv+selenium来对QQ邮箱的滑块进行模拟测试

李玺 2964

ReelShort Android 逆向实战:Frida Hook 定位 sign 与 requestTime 算法

一个动态变化的 sign,如何从海量 so 逻辑中精准定位并完整复现?本文以海外短剧 App ReelShort 为例,实战拆解搜索、列表与详情接口的分析过程:从 Charles 抓包锁定关键参数,到 jadx 定位 native 函数,再借助 Frida Hook 验证加密结果;逐步还原 requestTime 的生成机制及 sign 的 HMAC-SHA256 签名逻辑。全文记录关键思路、踩坑与验证方法,带你建立一套可迁移的 Android 接口逆向分析流程。

weixin_64116813的博客 458

零基础:Python之Selenium操作浏览器模拟登陆QQ邮箱

零基础:Python之Selenium操作浏览器模拟登陆QQ邮箱一、 Selenium简介二、 环境配置2.1 Python运行环境搭建2.2 Selenium相关安装与配置2.2.1 Selenium安装2.2.2 Selenium Driver安装与配置三、 操作 一、 Selenium简介 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,模拟用户在...

Penn Li的博客 2164

基于FreeSwitch与SIP UA的蓝牙电话坐席系统实战部署

本文详细介绍了如何基于FreeSwitch开源软交换平台,结合SIP UA软电话与蓝牙电话App,在局域网内搭建一套低成本、自主可控的电话坐席系统。文章提供了从环境准备、FreeSwitch安装配置、用户与拨号计划创建,到SIP软电话测试和蓝牙设备接入的完整实战部署流程,并给出了关键优化与排坑指南,适合小微团队或个人开发者构建内部通讯工具。

zeta9的博客 545

Android逆向实战:用Xposed Hook微信消息发送(附完整代码)

本文提供了一份Android逆向实战指南,详细讲解如何使用Xposed框架Hook微信消息发送功能。内容涵盖环境搭建、逆向分析定位关键方法、编写Hook模块代码以及调试部署的全过程,并附有完整代码示例,帮助开发者深入理解Android应用底层交互与Hook技术。

weixin_29196315的博客 1120

模拟QQ邮箱中收信人拦的删除操作

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <

dingyu_12的博客 274

ACS运动控制器编程语言

ACS运动控制器采用SPiiPlusLanguage(SPL)作为核心编程语言,该语言基于C语法设计,内置丰富的运动控制指令,支持点位运动、插补等复杂控制。控制器提供专用开发工具SPiiPlusManager和ACSStudio,支持图形化编程与调试。同时兼容TCP/IP、EtherCAT等多种扩展接口,便于与上位机或PLC集成。使用时需注意实时性优先级、轴参数匹配等关键事项。官方文档和示例程序为开发者提供了完善的学习资源。

StevenChen的博客 627

Java模拟登陆QQ邮箱获取好友列表的实现

谨以此文,纪念我好几天敖到1点睡觉,我是个好孩子,一般10点就钻被窝了,夜里好起来偷菜,hoho 其实很无聊,其实很BT,SNS网站好象一夜之间都提供邀请好友功能 但是像开心等都没有提供对qq的读取,因为QQ很变态,就用他开刀好了 前阵子在研究验证码识别,做了一些简单的注册机,灌水机,直到发现TMD这东西更变态,水太深,不费心了,能识别简单的就好了 类似QQ这样的不大可能识...

tomfish 517

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python模拟登录QQ邮箱和QQ空间(selenium)

Python模拟登录QQ邮箱和QQ空间登录(selenium) 1、准备工作 python3,pycharm 安装selenium (windows电脑安装:pip install selenium) 浏览器驱动安装:http://npm.taobao.org/mirrors/chromedriver/(这里使用的是Chrome浏览器,根据版本号下载对应的版本,在设置->关于Chrome里查看),解压后把chromedriver.exe放在文件夹C:\用户\用户名\AppData\Lo..

diudiu12301的博客 2479

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

调用Python的PyAutoGUI模块模拟登录QQ邮箱

调用Python的PyAutoGUI模块模拟登录QQ邮箱

gc_2299的博客 1084

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python模拟实现QQ邮箱登录

安装库selenium 实现模拟浏览器的安装库 pip install selenium 使用chrome浏览器需要chromedriver驱动下载地址 http://npm.taobao.org/mirrors/chromedriver/(可用)找到对应自己电脑浏览器的版本下载 将解压的文件chromedriver.exe添加到系统环境变量中 并将chromedriver.exe...

star_xing123的博客 5931

python获取qq好友ip_使用Python模拟登录QQ邮箱获取QQ好友列表

最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表。实现方式:通过google一搜,实现的方式大概有下面这篇文章提到的几种方法:最后我选择了通过模拟登录QQ邮箱的方式来实现,该实现方式在海内网上的好友查找功能也可以看到。与其他大部分邮箱不同的是,如果使用纯数字的QQ号登录的话,除了密码,还需要输入验...

weixin_32101285的博客 972

Python selenium模拟QQ邮箱登录

from selenium import webdriver import time browser = webdriver.Chrome() browser.get('https://mail.qq.com/cgi-bin/loginpage') browser.switch_to.frame('login_frame') # 找到邮箱账号登录框对应的iframe browser.find_element_by_name('u').send_keys('***') # 替换邮箱账号 # time

qq_43053280的博客 648

模拟QQ邮箱登录

模拟QQ邮箱登录 from selenium import webdriver import time driver = webdriver.Chrome() #QQ邮箱登录页面地址 driver.get('http://mail.qq.com') #切换iframe #frame= driver.find_element_by_id('login_frame') driver.switch_to.frame(1) time.sleep(5) #点击账号密码登录 #driver.find_eleme

qq_43721463的博客 1646
上一篇: 用Hexo搭建个人博客
下一篇: centos libc.6.so 链接出错
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值