- 浏览: 143554 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
贝塔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 800定义:一个类的定义放在另一个类的内部,这个类就叫做内部类。 j ... -
java递归根据节点configId得到节点configId的所有父节点名称
2013-12-27 14:45 8933思路: 定义一个方法getParentName参数为int类型 ... -
poi生成Excel单元格格式小结
2013-12-26 16:58 728目前POI版本采用3.9版本 先定义工作薄对象: HSSF ... -
java查找字符串将找到的字符串索引位置存储到集合中
2013-12-26 15:37 4748package com.hmkcode; impor ... -
java获取省市县数据
2013-12-26 15:34 1526java获取省市县数据. -
java毫秒进行转换
2013-11-26 12:36 1021package com.hmkcode; impor ... -
java金额转化
2013-11-26 11:46 642package com.hmkcode; publi ... -
java文件拷贝
2013-11-26 11:43 590package com.hmkcode; impor ... -
iframe引用一个页面并且获取页面的内容
2013-11-26 11:12 5260在a页面采用iframe引用一个页面,此页面为列表页面,在列表 ... -
java生成二维码
2013-11-21 16:08 698采用java生成二维码 需 ... -
poi导出excel合并单元格(包括列合并、行合并)
2013-10-29 15:12 358881 工程所需jar包如下: commons-codec-1.5 ... -
iText将html转化为pdf
2013-10-29 14:52 12731 将如下jar包导入工程: core-renderer.ja ... -
javascript生成表格增删改查
2013-08-02 16:07 3713<!DOCTYPE html PUBLIC " ... -
java通信socket
2013-07-03 17:37 790java和c++进行通信 -
css让DIV居中显示
2012-08-24 17:07 871主要的样式定义如下: body {TEXT-ALIGN: ... -
java采用Filter实现用户未登陆不能访问系统资源
2012-07-02 19:14 12131 Filter: import java.io.IOE ... -
MyEclipse6.5安装svn插件
2012-06-13 11:56 1071MyEclipse6.5安装SVN插件, ... -
用户注册后,使用激活码的Java实现
2012-04-26 14:28 33681 你根据用户名采用某个算法生成一个随机的字符串 比如可以根 ... -
java自动登录
2012-04-26 14:26 980第一步,登陆的时候一旦选择了[自动登录]的选项,则需要在登 ... -
文件上传使用POI导入数据库
2012-04-26 11:50 975文件上传使用POI导入数据库
相关推荐
在本文中,我们将深入探讨如何使用Java的HTTPClient库来模拟淘宝网的登录过程。这个过程涉及到了网络请求、HTTP协议、Cookie管理以及可能的HTML解析等技术。首先,我们来了解一下HTTPClient库。 HTTPClient是Java...
"Java 游戏源码-----模拟钢琴"是一个项目,它提供了一种独特的学习体验,让你能够深入理解如何使用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编程中,模拟微信浏览器访问Web页面是一个常见的需求,特别是在自动化测试、数据抓取或者模拟用户行为的场景。这个“java模拟微信浏览器访问.rar”压缩包中的主要文件是“MonitorWeixinBrowser.java”,我们...
pc端仿淘宝-pc端仿淘宝系统-pc端仿淘宝系统源码-pc端仿淘宝管理系统-pc端仿淘宝管理系统java代码-pc端仿淘宝系统设计与实现-基于springboot的pc端仿淘宝系统-基于Web的pc端仿淘宝系统设计与实现-pc端仿淘宝网站-pc端...
本文将详细介绍如何使用Java进行模拟登录,特别是结合OCR技术处理验证码。 首先,让我们了解什么是模拟登录。模拟登录是指通过编程方式自动登录到一个网站,通常是通过发送HTTP请求,模拟用户填写表单并提交的过程...
本资源“Java模拟实现百度文档在线浏览-源码”提供了一个独特的学习机会,让我们能够了解如何利用Java技术来模拟实现类似百度文库的在线文档预览功能。这个项目不仅对Java开发者有益,也为那些想要深入理解在线文档...
淘宝标准SDK(java),使用其与淘宝平台沟通,获取用户信息,商品信息等。
【Java网上购物结算模拟】课程设计是一次深入学习和实践Java编程语言的重要活动,旨在让学生掌握Java语言的核心概念和面向对象编程的特性。通过这次设计,学生不仅能巩固基础语法,还能提升使用JDK和开发工具(如...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
最新的淘宝开放平台sdkjar包,因为淘宝联盟有很多接口需要申请才能下载jar包,这里提供一个自己生成比较全的SDK
mysql-connector-java-5.1.42-bin.jar 官网下载的驱动
JavaCV(Java Computer Vision)是一个开源的计算机视觉库,它为Java和Android提供了对各种流行的计算机视觉库的访问,如OpenCV、FFmpeg、Face_recognition等。在本例中,我们关注的是`javacv-platform-1.3-bin.zip`...
而"taobao-sdk-java-online_standard-20140609-source.jar"则是该版本SDK的源代码包,开发者可以通过查看源代码来了解内部实现细节,学习如何使用API,或者在遇到问题时进行调试。源代码的提供对于开发者来说非常有...
java用于模拟https需要的jar包 包含commons-lang-2.6.jar、httpclient-4.3.2.jar、httpcore-4.3.jar、commons-io-2.4.jar、httpmime-4.3.1.jar、httpclient-cache-4.3.1.jar
Java程序模拟QQ空间登录 - 并模拟刷说说的赞(图文) 详细流程图文说明请看: http://blog.sina.com.cn/s/blog_533587770101iz4f.html 解决问题: a.Java模拟QQ空间登录,获取Cookie b.Java的QQ空间请求的G_TK...
本篇文章将深入探讨如何使用Java自动化方法模拟Android的人工点击和触屏事件,同时涉及`platform-tools`工具包中的adb(Android Debug Bridge)。 首先,`platform-tools`是Android SDK的一部分,包含了adb工具,这...
首先,我们来了解一下 `selenium-java-2.44.0.jar`。这是一个预编译的Java库,其中包含了Selenium WebDriver的Java绑定。WebDriver是Selenium的一个核心部分,它提供了一个编程接口,允许测试脚本直接控制浏览器。...
基于java的开发源码-电梯模拟程序 v2.0.zip 基于java的开发源码-电梯模拟程序 v2.0.zip 基于java的开发源码-电梯模拟程序 v2.0.zip 基于java的开发源码-电梯模拟程序 v2.0.zip 基于java的开发源码-电梯模拟程序 v2.0...