httpclient3 自动登陆淘宝, 开心网
生活随笔
收集整理的這篇文章主要介紹了
httpclient3 自动登陆淘宝, 开心网
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前提:
需要用到的java包
commons-httpclient-3.1.jar
commons-logging.jar
log4j-1.2.15.jar
commons-codec.jar
登陸淘寶的例子:
package com.spider.cron;import java.io.IOException;import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod;public class TaoBaoLogin {private static final String LOGON_SITE = "http://www.taobao.com";private static final int LOGON_PORT = 80;private static final String TAOBAO_BASE_LOGIN_BEFORE = "http://member1.taobao.com/member/login.jhtml?f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F";private static final String TAOBAO_BASE_LOGIN = "http://login.taobao.com/member/login.jhtml";public static void main(String args[]) throws HttpException, IOException {String taobaoUser="woshigoojje@163.com";String taobaoPwd="3DES_2_000000000000000000000000000000_61F0B8BE021BBBDD020919017B6816F5";String taobaoTid="XOR_1_000000000000000000000000000000_63584054400B0F717B750370";HttpClient client = new HttpClient();client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);String _tb_token_Value="";Cookie[] cookies = client.getState().getCookies(); String responseString = processGet(client,null,TAOBAO_BASE_LOGIN_BEFORE,cookies,true,true); responseString=responseString.substring(responseString.indexOf("_tb_token_")+"_tb_token_".length());responseString=responseString.substring(responseString.indexOf("_tb_token_")+"_tb_token_".length());_tb_token_Value=responseString.substring(responseString.indexOf("value=")+"value='".length(),responseString.indexOf(">")-1);PostMethod post = new PostMethod(TAOBAO_BASE_LOGIN);NameValuePair[] params= new NameValuePair[] { new NameValuePair("_oooo_", ""),new NameValuePair("_tb_token_", _tb_token_Value),new NameValuePair("abtest", ""),new NameValuePair("action", "Authenticator"),new NameValuePair("actionForStable", "enable_post_user_action"),new NameValuePair("CtrlVersion", "1,0,0,7"),new NameValuePair("done", ""),new NameValuePair("event_submit_do_login", "anything"),new NameValuePair("from", ""),new NameValuePair("loginType", "4"),new NameValuePair("mcheck", ""),new NameValuePair("mi_uid", ""),new NameValuePair("pstrong", ""),new NameValuePair("support", "000001"),new NameValuePair("tid", taobaoTid),new NameValuePair("TPL_password", taobaoPwd),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_redirect_url", ""),new NameValuePair("TPL_username", taobaoUser),new NameValuePair("yparam", "")};processPost(client, post, TAOBAO_BASE_LOGIN, params, cookies, true, false);Header header=post.getResponseHeader("Location");String redirectUrl=header.getValue();responseString = processGet(client, null, redirectUrl, cookies, true, true);responseString=responseString.substring(0,responseString.indexOf("我的彩票"));System.out.println("main(String[]) - " + responseString); String caiPiaoUrl=responseString.substring(responseString.lastIndexOf("<a")+"<a href='".length(),responseString.lastIndexOf(">")-1);processGet(client, null, caiPiaoUrl, cookies, true, false);}public static String processGet(HttpClient client,GetMethod get,String url,Cookie[] cookies,boolean needAppendCookies,boolean needResponse) throws IOException{if(client==null || url==null || url=="") return "";if(get==null)get=new GetMethod();get = new GetMethod(url); if(cookies!=null)get.setRequestHeader("Cookie" , cookies.toString());client.executeMethod(get);if(needAppendCookies){cookies = client.getState().getCookies(); client.getState().addCookies(cookies); }if(needResponse)return get.getResponseBodyAsString(); get.releaseConnection();return "";}public static String processPost(HttpClient client,PostMethod post,String url,NameValuePair[] params,Cookie[] cookies,boolean needAppendCookies,boolean needResponse) throws IOException{if(client==null || url==null || url=="") return "";if(post==null)post = new PostMethod(url);if(params!=null && params.length>0)post.setRequestBody(params);if(cookies!=null)post.setRequestHeader("Cookie" , cookies.toString());client.executeMethod(post);if(needAppendCookies){cookies = client.getState().getCookies(); client.getState().addCookies(cookies); }if(needResponse)return post.getResponseBodyAsString();post.releaseConnection();return "";}public static String processDetail(String tempStr,String startFlag,String endFlag,int starts,int ends){if(tempStr==null || "".equals(tempStr)) return "";int start=tempStr.indexOf(startFlag);int end=tempStr.indexOf(endFlag);if(start==-1 || end==-1 || (end-ends)<(start+starts)) return "";try{tempStr=tempStr.substring(start+starts,end-ends);}catch(Exception e){System.out.println("processDetail(String, String, String, int, int) " + e.toString()); return "";}return tempStr;}}?
?
?
登陸開心網的例子:
?
package com.spider.cron;import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod;public class LoginKaixin {private static final String LOGON_SITE = "http://www.kaixin001.com";private static final int LOGON_PORT = 80;public static void main(String[] args) throws Exception {HttpClient client = new HttpClient();client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);// 登錄頁面PostMethod post = new PostMethod("http://www.kaixin001.com/login/login.php");NameValuePair ie = new NameValuePair("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");NameValuePair url = new NameValuePair("url", "/home/");NameValuePair username = new NameValuePair("email", "xxx@163.com");NameValuePair password = new NameValuePair("password", "xxxxxx");post.setRequestBody(new NameValuePair[] { ie, url, username, password });client.executeMethod(post);System.out.println("******************************登錄******************************");Cookie[] cookies = client.getState().getCookies();client.getState().addCookies(cookies);post.releaseConnection();System.out.println("******************************頁面轉向******************************");String newUrl = "http://www.kaixin001.com/home/";System.out.println("==========Cookies============");int i = 0;for (Cookie c : cookies) {System.out.println(++i + ": " + c);}client.getState().addCookies(cookies);post.releaseConnection();GetMethod get = new GetMethod(newUrl);get.setRequestHeader("Cookie", cookies.toString());client.executeMethod(get);String responseString = get.getResponseBodyAsString();// 登錄后首頁的內容System.out.println(responseString);get.releaseConnection();System.out.println("******************************組件功能******************************");// "http://www.kaixin001.com/!slave/index.php", "朋友買賣"// "http://www.kaixin001.com/!parking/index.php", "爭車位"// "http://www.kaixin001.com/!house/index.php?_lgmode=pri", "買房子"// http://www.kaixin001.com/!house/index.php?_lgmode=pri&t=49// "http://www.kaixin001.com/!house/garden/index.php","花園"// (1)進入朋友買賣****************System.out.println("******************************(1)進入朋友買賣******************************");String slave = "http://www.kaixin001.com/!slave/index.php";get = new GetMethod(slave);get.setRequestHeader("Cookie", cookies.toString());client.executeMethod(get);responseString = get.getResponseBodyAsString();System.out.println(responseString);get.releaseConnection();// (2)進入爭車位****************System.out.println("******************************(2)進入爭車位******************************");String parking = "http://www.kaixin001.com/!parking/index.php";get = new GetMethod(parking);get.setRequestHeader("Cookie", cookies.toString());client.executeMethod(get);responseString = get.getResponseBodyAsString();System.out.println(responseString);get.releaseConnection();// (3)進入買房子****************System.out.println("******************************(3)進入買房子*******************************");String house = "http://www.kaixin001.com/!house/index.php?_lgmode=pri&t=49";get = new GetMethod(house);get.setRequestHeader("Cookie", cookies.toString());client.executeMethod(get);responseString = get.getResponseBodyAsString();System.out.println(responseString);get.releaseConnection();// (4)進入花園****************System.out.println("******************************(4)進入花園*******************************");String garden = "http://www.kaixin001.com/!house/garden/index.php";get = new GetMethod(garden);get.setRequestHeader("Cookie", cookies.toString());client.executeMethod(get);responseString = get.getResponseBodyAsString();System.out.println(responseString);get.releaseConnection();}}?
總結
以上是生活随笔為你收集整理的httpclient3 自动登陆淘宝, 开心网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QuickCHM 2.6“不支持此接口”
- 下一篇: 一招破解外网访问公司内网svn服务器