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

谨以此文,纪念我好几天敖到1点睡觉,我是个好孩子,一般10点就钻被窝了,夜里好起来偷菜,hoho

其实很无聊,其实很BT,SNS网站好象一夜之间都提供邀请好友功能

但是像开心等都没有提供对qq的读取,因为QQ很变态,就用他开刀好了

前阵子在研究验证码识别,做了一些简单的注册机,灌水机,直到发现TMD这东西更变态,水太深,不费心了,能识别简单的就好了

类似QQ这样的不大可能识别出来了。只有启用人肉识别,让肉眼自己看好了,娃哈哈

准备工作:
1.JDK1。6 为什么要1。6呢,这个后面再说
2.一个支持jsp的WEB环境,例如resin,tomcat等
3.要有简单的模拟登陆思路,比如我,最开始是做开心网外挂的模拟登陆
当然我是个非常无聊的人,一般无聊的都是先做163啊,126邮箱的模拟登陆,也是为了拿点用户列表,没新鲜的
模拟登陆我用的是org.apache.http,实现一个可以模拟登陆的client
public WebClient() {
currentURL = null;
client = new DefaultHttpClient();
client.setCookieStore(new UpdateableCookieStore());
client.setRedirectHandler(new MemorizingRedirectHandler());
client.getParams().setParameter("http.protocol.cookie-policy",
"compatibility");
List headers = new ArrayList();
headers
.add(new BasicHeader(
"User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"));
client.getParams().setParameter("http.default-headers", headers);
}
4.要有一些正则表达式常识
因为毕竟要从html里摘录出需要的内容,如sid什么的,不用正则太麻烦鸟~

好了,开练
先去http://mail.qq.com里看看代码,大概就是一些无聊的表单和验证码
把这些内容弄成一个简单的html登陆看看,操,居然登陆不了,告诉我验证码不对,向人肉保证,我的眼神没有问题
用httpwatch单独把验证码弄出来分析分析,居然生成的图片还带了cookie,@#$%^& 咒骂半小时
没办法了,只能把这个图片转发一下了
大概思路就是,先用服务器请求图片,然后response.setContentType("image/jpeg");
这就是为什么需要一个支持jsp的web环境了。
转发图片前把Cookie对象放到session里,一会提交QQ号啊,密码什么的那些垃圾的时候把这个再SET给虚拟的WEBCLIENT就OK了

验证码解决后就是表单处理了,我再操。。。页面里这些乱七八糟的js是干啥的啊,居然QQ密码在js端还做了一次RSA加密,这帮孙子怎么想的啊,太变态了

我先想到的是把这些js改写成java的代码,写了两行就放弃了,这不是人干的活啊

还好jdk1.6 有个扩展包,支持java读取js, 重来没试过,正好开开洋荤。 没想到啊,太好用了,这么复杂的js 都能转换,这个版本真值得信服,哈哈

页面里的js代码要稍微调整一下,有一些函数需要改写,去掉识别浏览器版本和表单对象的参数

javax.script.*

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval(new FileReader("/home/html/qq.js"));
engine.eval("var t=checkInput('"+pp+"','"+ts+"');");
String p=engine.get("t").toString();

一定要用1.6啊,我以前一直用的1.5,就是为了这个把机器里的JDK换成1.6了,哈哈

所有的前端问题都解决了,后面就是享受时间了
得到uin,password,verifycode提交
解析出加密的passwd后,post到http://mail.qq.com/cgi-bin/loginpage , 记得先把验证码的cookie对象set过去
String regex = "sid=(.*?)\";";
得到最需要的sid,后面的就是随便请求里面的连接了,想干啥就干啥,想吃啥就吃啥
我当时可能太激动了,得到了sid居然还是进不去,告诉我session time out,郁闷了1个晚上,不应该啊
最后才发现,我只是把sid print出来了,忘了set了,日。。。。

好爽,轻松拿到好友列表,下面一个问题就是如何骗用户输入QQ号和密码了,顺便友情提示一下大家,千万别相信类似开心啊,校内啊这些SNS网站, 不记录你密码都见了鬼了!!哈哈
易语言-邮箱登陆源码 三种登陆方式获取cookies和SID 邮箱登陆源码  三种登陆方式获取cookies和SID 立即下载

相关推荐

模拟登陆qq邮箱

模拟登陆qq邮箱,主要是学习使用python 模拟进行网页自动化登陆

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

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

aiku7326的博客 309

基于SMTP协议的模拟邮件系统(java代码实现

原文链接:https://blog.csdn.net/qq_37508554/article/details/88874243 自己写的利用java实现的基于SMTP协议的模拟邮件系统,能实现邮件的收发操作,完整代码,仅需配置邮箱账户和授权密码即可使用(代码中利用java swing渲染界面)

JAVA+selenium+testNG QQ邮箱登录及邮箱发送

本套自动化ui是基于java+selenium+testNG。 涉及到frame的切换,xpath的定位,页面标签分析。Testng执行的先后顺序。 QQ邮箱登录; 用谷歌打开qq邮箱登录页面F12打开查看里面的内容; 从上面的两张截图可以看出来 微信登录与qq登录所要找的iframe的id是一样的,所以 1.登录前必须先点击QQ登录,然后切到id为login_frame 的iframe页面...

qq_40847617的博客 2067

sprintboot Redis配置详解

# REDIS (RedisProperties) # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等

u010125432的博客 974

QQ邮箱模拟登陆(2022.9.12)

爬虫,selenium自动化操作,QQ邮箱模拟登陆,可以参考用于在其他平台的登录

weixin_45715650的博客 1290

java模拟登录qq邮箱_使用Java实现qq邮箱发送邮件

本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送邮件!(这些个服务就是些协议,只有开启了之后就可以做一些操作)步骤1、登录QQ邮箱> 设置 > 账户2、找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务开...

weixin_39603799的博客 1162

零基础: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的博客 2158

java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例

下载和上传附件、发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相关代码,具体解释可以参考代码中注释:package test;import java.util.ArrayList;import java.util.Date;import java.util.Lis...

weixin_36143290的博客 555

获取邮箱好友列表 JAVA

本人在研究如何不通过邮箱取得好友列表,邮件通讯录联系人是通过模拟登陆邮箱从网页源码中用正则表达式提取真实数据,这是思路,有兴趣可以研究,有更好的思路可以分享...     现在只是有取得GMAIL的邮箱好友列表的代码....     有想要的和我联系....     axiang_2898@126.com     QQ:306757438...

axiang_2898的专栏 459

QQ空间及邮箱验证码登录的校验方式及自动登录的解决方案

目前有很多的SNS社区或类SNS的网站,例如开心、51、校内等,但是发现大多数社区在邀请好友的时候都没有提供对QQ邮箱或者QQ空间好友列表获取的功能,不过似乎海内支持,但是网上相关QQ的文章还不是很多,希望这篇文章能给你带来一些帮助。 QQ空间及邮箱登陆的校验方式: QQ空间及邮箱登陆的时候,用户输入的密码首先会被页面中的一段Js加密,然后加密过后的密码会加上验证码形成一个新的字串,接着这个新

淡定 1637

java获取邮件联系人

以前写的,分享给大家,有什么问题的话,自己解决吧,我现在没时间整理这块,但大致思路是这样做的

JAVA获取邮件联系人

java实现获取邮件联系人的功能 用户提供邮箱帐号和密码,获取邮箱联系人列表: 方法1:利用各邮箱官方开放的API接口,连接到邮箱服务器;(国外大部分邮箱支持) 方法2:利用httpclient模拟登录邮箱,抓取联系人页面的源代码---------使用http监听工具,抓出 邮箱登录、跳转(action)、联系人页面 等URL、form表单中隐藏的参数、高版本httpclient会自动管理cookie

052_Selenium & 案例QQ邮箱自动登陆

动态渲染页面爬取 在博客51_Ajax爬虫 & 案例微博页面爬取中介绍了利用 Ajax 解决页面动态渲染的问题,但是 JS 动态渲染的页面不止 Ajax 这一种,有些网站,不能直接分析 Ajax 来抓取, 难以直接找出其规律,例如: 中国青年网,分页由 JS 生成但不包含 Ajax 请求。 ECharts 官方实例,图形都是经过 JS 计算之后生成的。 淘宝,其 Ajax 接口含有很多加密参数。 如何解决上述问题呢? 直接使用模拟浏览器运行的方式来实现 —> 可见即可爬 Python提供了

煮面要加牛奶的博客 958

selenium自动化登陆qq邮箱(17.07.04更)

# -*- coding:UTF-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 模拟登陆qq邮箱 driver = webdriver.Firefox(executable_path = 'D:\getckodriver\geckodriver

皮皮王的专栏 3992

Python + Selenium 登录QQ邮箱

阅读原文摘要: 本文涉及到的python, python decorater, selenium. 想要了解用python + selenium做web自动化测试的童鞋,了解一下Python + Selenium 自动化登录QQ邮箱准备工作Windows或则Linux安装Python安装Selenium安装Chrome Driver环境选择Windows 10安装PythonWindows下安装 ...

weixin_40581980的博客 1019

java获取qq邮箱的网络爬虫

代码如下 package Game; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex....

weixin_30443075的博客 147

python干货|用requests库实现模拟登陆

python干货|用requests库实现模拟登陆 发表时间:2020-03-01 Python模拟登录的几种方法 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 方法一:直接使用已知的cookie访问 ...

rednation_88的博客 1047
上一篇: 在IT界取得成功应该知道的10件事
下一篇: jOOQ 1.6.3发布,Java的ORM框架
tomfish88
博客等级 码龄16年 8粉丝 194原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值