java京东自动登录
大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台
https://blog.csdn.net/u013232789/article/details/74456204?locationNum=5&fps=1
public synchronized boolean login() {
//判断是否已登录
String verify = HttpClientUtil.get("https://home.jd.com/getUserVerifyRight.action");
if (verify.length() < 200) {
return true;
}
try {
Document doc = Jsoup.parse(HttpClientUtil.get("https://passport.jd.com/new/login.aspx"));
Thread.sleep(1000);
Elements elements = doc.select("form[id=formlogin] input[type=hidden]");
Map<String, String> map = new HashMap<String, String>();
String k, v;
for (Element input : elements) {
k = input.attr("name");
v = input.attr("value");
if (StringUtils.isNotBlank(k)) {
map.put(k, v);
System.out.println(input);
}
}
map.put("loginname", keyValueMap.get("JDAccount"));
map.put("nloginpwd", keyValueMap.get("JDPassword"));
map.put("eid",
"RXI4RZELZBUFTKRYDTWZHA734GHXAKCA5SJQSPGLJ2RXCIZUT3PAYXSRGSC57USYLK6432Z7WJW36ZEEGVWMLILT3E");
map.put("fp", "ccbe046c9993c80f4838e591159ce563");
String result = HttpClientUtil.get(
"https://seq.jd.com/jseqf.html?bizId=passport_jd_com_login_pc&platform=js&version=1");
Thread.sleep(1000);
String pattern = "sessionId=.+_jdtdseq_config_data";
// 创建 Pattern 对象
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(result);
if (m.find()) {
System.out.println(m.group().substring(11, 29));
map.put("seqSid", m.group().substring(11, 29));
}
String url = "https://passport.jd.com/uc/loginService?";
url = url + "&uuid=" + map.get("uuid") + "&r=" + Math.random() + "&version=2015";
System.out.println("url: " + url);
String post = HttpClientUtil.post(url, map);
System.out.println(post);
String ans = decodeUnicode(post);
System.out.println(ans);
if (ans.contains("emptyAuthcode")) {
String authUrl = "https://authcode.jd.com/verify/image";
Map<String, String> param = new HashMap<>();
param.put("a", "1");
param.put("acid", map.get("uuid"));
param.put("uid", map.get("uuid"));
param.put("yys", String.valueOf(System.currentTimeMillis()));
Map<String, String> header = new HashMap<>();
header.put("Referer", "https://passport.jd.com/new/login.aspx");
HttpResponse response = HttpClientUtil.getForResponse(authUrl, param, header);
String authCode = RuoKuai.createByPost(keyValueMap.get("RKAccount"), keyValueMap.get("RKPassword"),
response.getEntity().getContent());
System.out.println(authCode);
map.put("authcode", authCode);
ans = decodeUnicode(HttpClientUtil.post(url, map));
log.info(ans);
}
if (ans.contains("success")) {
return true;
} else {
return false;
}
} catch (Exception e) {
log.error(TypeUtil.getErrorInfoFromException(e));
return false;
}
}
java京东自动登录的更多相关文章
- Python实现京东自动登录
配置好webdriver,用的是Chrome的 import cv2 import time import numpy as np from selenium import webdriver fro ...
- QQ模拟自动登录实现
QQ模拟自动登录实现 本篇文章主要介绍"QQ模拟自动登录实现(带验证码)",主要涉及到java 实现QQ自动登录(带验证码)方面的内容,对于java 实现QQ自动登录(带验证码)感 ...
- java 自动登录代码
javaBean的代码 package bean; import java.io.Serializable; public class Admin implements Serial ...
- java代码实现自动登录功能
通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp & ...
- 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...
- java浏览器控件jxbrowser(简单demo模拟自动登录与点击)
写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程 ...
- [原创]java WEB学习笔记29:Cookie Demo 之自动登录
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java 扫描微信公众号二维码,关注并自动登录网站
https://blog.csdn.net/qq_42851002/article/details/81327770 场景:用户扫描微信公众号的二维码,关注后自动登录网站,若已关注则直接登录. 逻辑: ...
- 转:实现Java Web程序的自动登录
有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...
随机推荐
- Flask 请求中间件、错误处理、标签、过滤器、CBV
目录 一.请求中间件 二.请求中间件额外方法(重写源码) 三.请求错误处理 四.请求标签.过滤器 五.CBV写法 基础版 常用版 一.请求中间件 中间件: 1 before_first_request ...
- Lua Table pairs输出顺序问题 (版本差异 解决数字索引间断并兼容字符串索引)
问题标签: Lua Table 迭代器;Lua Table 输出顺序; Lua Table 顺序输出;Lua Table 数字索引 字符串索引;Lua Table pairs; 问题背景: 使用pai ...
- Dubbo 扩展点加载机制:从 Java SPI 到 Dubbo SPI
SPI 全称为 Service Provider Interface,是一种服务发现机制.当程序运行调用接口时,会根据配置文件或默认规则信息加载对应的实现类.所以在程序中并没有直接指定使用接口的哪个实 ...
- select_related prefetch_related
# select_related与prefetch_related# # select_related帮你直接连表操作 查询数据 括号内只能放外键字段# # res = models.Book.obj ...
- 接口自动化框架pyface详细介绍
版权说明 本框架系本人结合一些实践经验和开源框架设计思想,在家基于兴趣爱好独立完成的代码开发. 源码只保存在私人电脑,办公电脑上无.github开源与公司无关,先把关系撇清,不涉及侵权. 嘘. 框架定 ...
- Asp.Net Core 中IdentityServer4 实战之角色授权详解
一.前言 前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角 ...
- F版本SpringCloud 5—Eureka集群和自我保护机制
源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...
- VRRP协议:Virtual Route
VRRP协议:Virtual Route Redundancy Protocol虚拟路由冗余协议.是一种容错协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而 ...
- Mybatis 小记
1,mybatis 中 $ # 区别 mybatis 动态传参的两种方式 #{ }在动态解析的时候,会将#{ } 解析为一个预编译阶段的一个标记符号?,在预处理阶段才会替换 ${ }在动态解析的时候, ...
- WiX 自定义
WiX 允许用户做一些自定义操作 用户界面向导 对于安装界面,用户可以用自己的位图.图标和许可证文本替换默认的.它们的路径存储在变量中,您可以在命令行或直接在源代码中指定这些变量: <WixVa ...