- 浏览: 142807 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
贝塔ZQ:
poi生成excel文件,之前也用过,就是感觉代码好多啊。后来 ...
poi导出excel合并单元格(包括列合并、行合并) -
qwe123asf:
楼主的代码貌似不行哎,登陆就出现错误了,请问是否有可以模拟登陆 ...
java模拟淘宝网领取淘宝币--转载 -
pcxbest:
atoi这个方法怎么没有定义?
js验证ip地址和子网掩码等
转载博客地址:http://www.oschina.net/code/snippet_872419_26714
需要httpclient-4.1.3.jar和httpcore-4.1.4.jar以及json依赖包
需要httpclient-4.1.3.jar和httpcore-4.1.4.jar以及json依赖包
package com.hmkcode; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import net.sf.json.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.CookieStore; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.params.CookiePolicy; import org.apache.http.client.params.HttpClientParams; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; public class Taobao { private static final Logger logger = Logger.getLogger(Taobao.class); private static String loginUrl = "https://login.taobao.com/member/login.jhtml"; private static String tbToken = null;// 淘宝领金币使用的token private static DefaultHttpClient httpclient = null;// HttpClient对象 private static HttpResponse response = null; private String userName = "";// 用户名 private String passWord = "";// 密码明文 /** * 构造函数 * * @param userName * @param passWord */ public Taobao(String userName, String passWord) { this.userName = userName; this.passWord = passWord; } /** * 登陆淘宝 * * @return * @throws IOException * @throws ClientProtocolException */ public boolean login() { if (null != httpclient) { return true; } httpclient = new DefaultHttpClient(); // 设定cookie策略 HttpClientParams.setCookiePolicy(httpclient.getParams(), CookiePolicy.BROWSER_COMPATIBILITY); // 登陆使用的表单数据 List<namevaluepair> loginParams = new ArrayList<namevaluepair>(); loginParams.add(new BasicNameValuePair("TPL_username", userName)); loginParams.add(new BasicNameValuePair("TPL_password", passWord)); //登陆post请求 HttpPost loginPost = new HttpPost(loginUrl); loginPost.addHeader("Referer", loginUrl); loginPost.addHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8"); loginPost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2; Tablet PC 2.0)"); loginPost.addHeader("Host", "login.taobao.com"); try { loginPost.setEntity(new UrlEncodedFormEntity(loginParams, HTTP.UTF_8)); //获取登陆应答内容 response = httpclient.execute(loginPost); if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ String redirectUrl=getRedirectUrl(); if(!"".equals(redirectUrl)){ //有重定向说明成功了,获取token getTbToken(redirectUrl); }else{ logger.info("登陆请求出错,重定向失败!"); return false; } }else{ logger.info("登陆请求出错,post返回状态:"+response.getStatusLine().getStatusCode()); return false; } } catch (Exception e) { e.printStackTrace(); return false; } finally { loginPost.abort(); } return true; } /** * 领取每日金币 */ @SuppressWarnings("rawtypes") public boolean getEveryDayCoins(){ boolean flag=false; long t=System.currentTimeMillis(); long enter_time=t-12345; String gainCoinUrl="http://vip.taobao.com/home/grant_everyday_coin.htm?t="+String.valueOf(t) +"&_tb_token_="+tbToken+"&checkCode=null" + "&enter_time="+String.valueOf(enter_time); HttpGet gainCoinGet1 =new HttpGet(gainCoinUrl); HttpResponse gainCoinResponse1; try { gainCoinResponse1 = httpclient.execute(gainCoinGet1); HttpEntity httpEntity = gainCoinResponse1.getEntity(); String responseJsonStr = EntityUtils.toString(httpEntity);//取出应答字符串 //logger.info("领取金币应答字符串:"+responseJsonStr); Map map = JSONObject.fromObject(responseJsonStr); int code=(Integer)map.get("code"); int daysTomorrow=(Integer)map.get("daysTomorrow"); String coinTomorrow=(String) map.get("coinTomorrow"); int coinNew=(Integer) map.get("coinNew"); int coinOld=(Integer) map.get("coinOld"); int coinGot=coinNew-coinOld; if(1==code){ logger.info("成功领取"+coinGot+"个淘金币,已连领"+daysTomorrow+"天,当前金币数量"+coinNew+",明天可领"+coinTomorrow); flag=true; }else if(4==code){ logger.info("哦? 需要输入验证码,领个淘金币还这么麻烦!"); }else if(5==code){ logger.info("验证码错误!"); }else if(6==code){ logger.info("这叫神马逻辑,有5个好友的用户才能天天领金币,当前淘金币数量"+coinNew); }else if(2==code){ logger.info("今天运气不错,已经领了"); flag=true; }else{ logger.info("没见过这个code,问问淘宝客服?"); flag=true; } //以防万一,再执行一次..... gainCoinResponse1 = httpclient.execute(gainCoinGet1); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { gainCoinGet1.abort(); } return flag; } /** * 获取淘宝重定向url * @return */ private String getRedirectUrl(){ String redirectUrl=""; HttpEntity resEntity = response.getEntity(); try { String bufferPageHtml=EntityUtils.toString(resEntity, HTTP.UTF_8); Pattern pattern1 = Pattern.compile("window.location = \"(.*)\";"); Matcher m1 = pattern1.matcher(bufferPageHtml); if (m1.find()) { redirectUrl=m1.group(1); logger.info("redirectUrl:"+redirectUrl); } else { logger.error("获取redirectUrl失败!"); } } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return redirectUrl; } /** * 获取淘宝登陆令牌 * 可以使用两种方式 * 1.jsoup解析网页获取 * 2.从httpclient对象的cookie中获取 * @param redirectUrl */ private void getTbToken(String redirectUrl){ HttpGet itaobaoGet =new HttpGet(redirectUrl); try { httpclient.execute(itaobaoGet); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ itaobaoGet.abort(); } CookieStore cookiestore=httpclient.getCookieStore(); List<cookie> cookies=cookiestore.getCookies(); if (cookies.isEmpty()) { logger.info("cookies is null!"); } else { for (int i = 0; i < cookies.size(); i++) { Cookie cookie=cookies.get(i); //logger.info( cookies.get(i).toString()); if(cookie.getName().equals("_tb_token_")){ tbToken=cookie.getValue(); logger.info("淘宝令牌:"+tbToken); } } } } /** * @param args */ public static void main(String[] args) { Taobao taobao=new Taobao("用户名","密码"); taobao.login(); taobao.getEveryDayCoins(); } }
发表评论
-
java内部类用法解析
2013-12-30 14:02 772定义:一个类的定义放在另一个类的内部,这个类就叫做内部类。 j ... -
java递归根据节点configId得到节点configId的所有父节点名称
2013-12-27 14:45 8923思路: 定义一个方法getParentName参数为int类型 ... -
poi生成Excel单元格格式小结
2013-12-26 16:58 723目前POI版本采用3.9版本 先定义工作薄对象: HSSF ... -
java查找字符串将找到的字符串索引位置存储到集合中
2013-12-26 15:37 4741package com.hmkcode; impor ... -
java获取省市县数据
2013-12-26 15:34 1520java获取省市县数据. -
java毫秒进行转换
2013-11-26 12:36 1013package com.hmkcode; impor ... -
java金额转化
2013-11-26 11:46 639package com.hmkcode; publi ... -
java文件拷贝
2013-11-26 11:43 586package com.hmkcode; impor ... -
iframe引用一个页面并且获取页面的内容
2013-11-26 11:12 5251在a页面采用iframe引用一个页面,此页面为列表页面,在列表 ... -
java生成二维码
2013-11-21 16:08 674采用java生成二维码 需 ... -
poi导出excel合并单元格(包括列合并、行合并)
2013-10-29 15:12 358721 工程所需jar包如下: commons-codec-1.5 ... -
iText将html转化为pdf
2013-10-29 14:52 12451 将如下jar包导入工程: core-renderer.ja ... -
javascript生成表格增删改查
2013-08-02 16:07 3707<!DOCTYPE html PUBLIC " ... -
java通信socket
2013-07-03 17:37 766java和c++进行通信 -
css让DIV居中显示
2012-08-24 17:07 841主要的样式定义如下: body {TEXT-ALIGN: ... -
java采用Filter实现用户未登陆不能访问系统资源
2012-07-02 19:14 11971 Filter: import java.io.IOE ... -
MyEclipse6.5安装svn插件
2012-06-13 11:56 1066MyEclipse6.5安装SVN插件, ... -
用户注册后,使用激活码的Java实现
2012-04-26 14:28 33501 你根据用户名采用某个算法生成一个随机的字符串 比如可以根 ... -
java自动登录
2012-04-26 14:26 974第一步,登陆的时候一旦选择了[自动登录]的选项,则需要在登 ... -
文件上传使用POI导入数据库
2012-04-26 11:50 952文件上传使用POI导入数据库
相关推荐
仿淘宝-仿淘宝平台-仿淘宝平台源码-仿淘宝平台java代码-仿淘宝平台设计与实现-基于springboot的仿淘宝平台-基于Web的仿淘宝平台设计与实现-仿淘宝网站-仿淘宝网站源码-仿淘宝网站java代码-仿淘宝项目-仿淘宝项目代码...
最新官方淘宝服务端SDK,5月18日更新,包含taobao-sdk-java.jar和taobao-sdk-java-source.jar两个文件,供大家下载研究。 maven安装命令:mvn install:install-file -Dfile=路径\xxx.jar -DgroupId=dingtalk-sdk-...
"Java 游戏源码-----模拟钢琴"是一个项目,它提供了一种独特的学习体验,让你能够深入理解如何使用Java语言来创建互动性的游戏应用。这个源码实现了一个模拟钢琴,允许用户在虚拟键盘上弹奏音乐,体验接近真实钢琴的...
3. **taobao-sdk-java-online_standard-20140408.jar**:这是主SDK的jar文件,包含了所有必要的类和方法,供开发者在项目中引入并使用。开发者将此文件添加到项目的类路径中,就可以开始调用淘宝API了。 4. **...
pc端仿淘宝-pc端仿淘宝系统-pc端仿淘宝系统源码-pc端仿淘宝管理系统-pc端仿淘宝管理系统java代码-pc端仿淘宝系统设计与实现-基于springboot的pc端仿淘宝系统-基于Web的pc端仿淘宝系统设计与实现-pc端仿淘宝网站-pc端...
本文将详细介绍如何使用Java进行模拟登录,特别是结合OCR技术处理验证码。 首先,让我们了解什么是模拟登录。模拟登录是指通过编程方式自动登录到一个网站,通常是通过发送HTTP请求,模拟用户填写表单并提交的过程...
淘宝开放平台api sdk java 版本 taobao-sdk-java-auto-*.jar
本资源“Java模拟实现百度文档在线浏览-源码”提供了一个独特的学习机会,让我们能够了解如何利用Java技术来模拟实现类似百度文库的在线文档预览功能。这个项目不仅对Java开发者有益,也为那些想要深入理解在线文档...
学生竞赛模拟-学生竞赛模拟系统-学生竞赛模拟系统源码-学生竞赛模拟管理系统-学生竞赛模拟管理系统java代码-学生竞赛模拟系统设计与实现-基于ssm的学生竞赛模拟系统-基于Web的学生竞赛模拟系统设计与实现-学生竞赛...
学生竞赛模拟-学生竞赛模拟系统-学生竞赛模拟系统源码-学生竞赛模拟管理系统-学生竞赛模拟管理系统java代码-学生竞赛模拟系统设计与实现-基于ssm的学生竞赛模拟系统-基于Web的学生竞赛模拟系统设计与实现-学生竞赛...
pc端仿淘宝-pc端仿淘宝系统-pc端仿淘宝系统源码-pc端仿淘宝管理系统-pc端仿淘宝管理系统java代码-pc端仿淘宝系统设计与实现-基于springboot的pc端仿淘宝系统-基于Web的pc端仿淘宝系统设计与实现-pc端仿淘宝网站-pc端...
淘宝开放平台TOP,官方发布的最新java版SDK,2020年7月更新,如需要其他版本请留言,等待上传。
淘宝标准SDK(java),使用其与淘宝平台沟通,获取用户信息,商品信息等。
Java模拟实现PV操作是多线程编程中一个重要的概念,主要应用于解决生产者-消费者问题。在并发编程中,PV操作(即信号量Semaphore)是由荷兰计算机科学家Edsger Dijkstra提出的,它通过控制对共享资源的访问来避免竞...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
mysql-connector-java-5.1.42-bin.jar 官网下载的驱动
最新的淘宝开放平台sdkjar包,因为淘宝联盟有很多接口需要申请才能下载jar包,这里提供一个自己生成比较全的SDK
Java 模拟发送 Form-Data 的请求方式 Java 模拟发送 Form-Data 的请求方式是指在 Java 语言中模拟浏览器发送 Form-Data 格式的 HTTP 请求的方法。Form-Data 是一种常见的 HTTP 请求体格式,广泛应用于文件上传、...
`taobao-sdk-java-20110512.jar` 是淘宝SDK的核心库文件,包含了所有必要的类和方法,供开发者在Java项目中引用。这个版本号(20110512)表示该SDK的发布日期,开发者需要根据实际需求选择合适版本的SDK以确保兼容性...
`mysql-connector-java-5.1.47.jar`是这个驱动程序的特定版本,发布于MySQL的5.1系列,它提供了与MySQL 5.1数据库版本兼容的连接功能。 **JDBC(Java Database Connectivity)** JDBC是Java平台上的标准API,由Sun ...