大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台

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京东自动登录的更多相关文章

  1. Python实现京东自动登录

    配置好webdriver,用的是Chrome的 import cv2 import time import numpy as np from selenium import webdriver fro ...

  2. QQ模拟自动登录实现

    QQ模拟自动登录实现 本篇文章主要介绍"QQ模拟自动登录实现(带验证码)",主要涉及到java 实现QQ自动登录(带验证码)方面的内容,对于java 实现QQ自动登录(带验证码)感 ...

  3. java 自动登录代码

    javaBean的代码    package bean;    import java.io.Serializable;    public class Admin implements Serial ...

  4. java代码实现自动登录功能

    通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp & ...

  5. 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...

  6. java浏览器控件jxbrowser(简单demo模拟自动登录与点击)

    写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程 ...

  7. [原创]java WEB学习笔记29:Cookie Demo 之自动登录

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Java 扫描微信公众号二维码,关注并自动登录网站

    https://blog.csdn.net/qq_42851002/article/details/81327770 场景:用户扫描微信公众号的二维码,关注后自动登录网站,若已关注则直接登录. 逻辑: ...

  9. 转:实现Java Web程序的自动登录

    有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...

随机推荐

  1. 基于Python3 + appium的Ui自动化测试框架

    UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...

  2. [Alg] 文本匹配-单模匹配-KMP

    1. 暴力求解 如下图所示.蓝色的小三角表示和sequence比较时的开始字符,绿色小三角表示失败后模式串比对的开始字符,红色框表示当前比较的字符对. 当和模式串发生不匹配时,蓝色小三角后移一位,绿色 ...

  3. JavaScript(7)--- 继承

    JavaScript(7)--- 继承 概念 首先继承是一种关系,类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后通过原型来实现继承,继承也是为了数据共享. 之间有讲过j ...

  4. Stress-induced changes in the S-palmitoylation and S-nitrosylation of synaptic proteins (解读人:陈凌云)

    文献名:Stress-induced changes in the S-palmitoylation and S-nitrosylation of synaptic proteins (压力诱导突触蛋 ...

  5. 简单BBS项目开始(二)

    登陆和生成图片验证码 1.生成图片 pillow 1.生成图片的模块pillow,在python中安装pillow,在Django中使用时用PIL2. 在页面上<img id="val ...

  6. django缓存和跨域解决和短信验证码的使用

    缓存 在实际项目中,存在大量的数据检索,比如我们刷微博的时候,刚开始加载速度慢一点,然后第一次加载完毕之后,如果你此时的手机没有网络,但是你发现你的微博还是可以照样刷,但是刷到一定的页面就走不动了,那 ...

  7. 牛客网剑指offer【Python实现】——part2

    不用加减乘除做加法 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 两个数异或:相当于每一位相加,而不考虑进位: 两个数相与,并左移一位:相当于求得进位: 将上述两步的 ...

  8. mysql-8.0.19-winx64下载

    mysql-8.0.19-winx64 下载链接 提取码:m7qp

  9. TensorFlow 安装官方教程:Ubuntu 安装,Mac OS X 安装,Windows 安装

    从我的使用体验来看  Ubuntu 是最好的, Mac 没有显卡,后期跑大项目比较鸡肋,Windows 安装各种依赖各种坑.Ubuntu 安装 TensorFlow 方便,后面安装  TensorFl ...

  10. Serpent.AI - 游戏代理框架(Python)

    Serpent.AI - 游戏代理框架(Python) Serpent.AI是一个简单而强大的新颖框架,可帮助开发人员创建游戏代理.将您拥有的任何视频游戏变成一个成熟的实验的沙箱环境,所有这些都是熟悉 ...