- 浏览: 2159785 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sunzeshan:
找了很久,用了这个插件解决问题啦。谢谢
eclipse jetty debug source not found -
xiaosong0112:
您好,请问为什么要这样设置呢,原理是什么?在网上很多转帖都没有 ...
maven的jetty插件提示No Transaction manager found导致启动慢的解决方法 -
eimhee:
tjzx 写道畅搜谷歌:http://dian168.cc/打 ...
Google 镜像站搜集 -
tjzx:
畅搜谷歌:http://dian168.cc/打开的是“最火源 ...
Google 镜像站搜集 -
eimhee:
finallygo 写道你这属于"头痛医头脚痛医脚& ...
解决linux下too many file问题
前提:
需要用到的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(); } }
- httpclient.rar (369.6 KB)
- 下载次数: 356
评论
12 楼
dingxanghua
2013-07-12
淘宝登录还是用c#的webbroser控件吧,就6行左右代码,httpclient的这个玩不起来
11 楼
dingxanghua
2013-07-12
对我的帮助很大,对httpclient认识更深刻了。
10 楼
zhutianxiang
2013-04-13
你这段登录淘宝的目前已经无效了。是解析登录页面,获取"_tb_token_"时出错了,登录页面现在搜索不到这个字符串了。能修改一下再提供吗?可以加我扣,我有后续问题可能需要你帮助,非常感谢。16530202
9 楼
ctfzh
2010-11-18
不错,学习了
8 楼
long502147
2010-11-15
加个验证码!这个就不灵了~
7 楼
zrf8579
2010-11-14
我测试了一下,如果登录时勾选“使用安全控件”,password处就是使用3DES方式,如果不勾选,直接会以明文方式发送TPL_password
使用安全控件的loginType为4,不使用的话loginType为3
使用安全控件的loginType为4,不使用的话loginType为3
6 楼
eimhee
2010-11-14
zrf8579 写道
taobaoPwd和taobaoTid两个值怎么获得的?可以生成么?
要抓包工具才能获取到
5 楼
zrf8579
2010-11-13
taobaoPwd和taobaoTid两个值怎么获得的?可以生成么?
4 楼
ustcfrank
2010-11-11
yangguo 写道
有什么用呢?
秒杀
3 楼
yuhe
2010-11-10
my god
xie xie lou zhu 这样的话都不能发。
xie xie lou zhu 这样的话都不能发。
2 楼
eimhee
2010-11-10
yangguo 写道
有什么用呢?
写外挂, 自动发帖, 自动投票的第一步就是要先登陆
1 楼
yangguo
2010-11-10
有什么用呢?
发表评论
-
MySQLNonTransientConnectionException: No operations allowed
2015-05-19 16:47 2323最近在调试会发现“ No operations allow ... -
mysql 执行计划优化
2013-04-07 17:46 1535一条简单的SQL 语句竟花了15.87 sec, ... -
ThreadLocal 引起的内存泄露
2012-10-18 17:48 2410最近在用LOADRUNNER做性能测试, 运行几个小时后, ... -
lucene 反向索引原理
2012-07-20 12:47 1987lucene是一个高性能的全文搜索工具, 使用反向索引结构。 ... -
tomcat7在UBUNTU上自动启动
2012-06-11 12:55 2759为了让tomcat自动启动当电脑重起时, 你必须添加一个脚本, ... -
hadoop中的Writable分析
2012-06-07 11:27 3365hadoop 要使一个类能序例化, 要实现Writabl ... -
在UBUNTU安装NUTCH(十个简单的步骤)
2012-06-06 17:32 4015下面十个步骤能安装Nutch, 并且能爬行你的网站, 创建你自 ... -
深入Lucene的索引文件
2012-02-01 16:50 6875Lucene的索引里面存了些什么,如何存放的,也即Luc ... -
EasyMock and IllegalStateException
2012-01-31 15:09 1334When writing a portlet and tryi ... -
Java Enum的原理
2011-05-03 09:19 1818Java Enum 类型的语法结构尽管和 java 类的语法不 ... -
用JAXB从对象生成XML
2011-04-26 08:54 2980import java.io.FileOutputStream ... -
jdk6 WebService入门
2011-03-10 23:04 3385一、 Web Services简介 ... -
dom4j处理超大XML
2010-12-26 23:35 4841英文原文 : http://dom4j.sourceforge ... -
Lucene实时索引构建
2010-11-06 23:11 7419Lucene可以增量的添加一 ... -
分享Java并发最佳书籍Java Concurrency in Practice Java并发最佳书籍 下载
2010-10-21 08:31 13439好久没有上来更新过了,最近在学习线程池实现,参考了 Tomc ... -
Spring Hibernate3 配置 C3P0
2010-10-15 00:31 7556由于Hibernate3不推荐使用DBCP, 所以把连接池换成 ... -
将依赖包加入到本地maven库
2010-07-22 16:47 2889要将依赖包加入到本地maven库 mvn instal ... -
Maven Dependency设置,详解!
2010-07-21 17:08 2506用了Maven,所需的JAR包 ... -
Inner Join with hibernate and HQL
2010-07-18 12:24 2175String queryStri ... -
ORACLE 分组 排序出前面最大的N行
2010-07-02 09:18 1651select custid,carid,Cunote,INV ...
相关推荐
标题中的“用httpclient写的登录开心网”表明我们将探讨如何使用Apache HttpClient库来实现对开心网的模拟登录。HttpClient是一个Java库,它提供了强大的HTTP客户端功能,包括发起HTTP请求、处理响应以及管理会话等...
JAVA爬虫可以用来自动登录淘宝网,实现自动登录淘宝网的功能。 在本例中,我们使用了Selenium工具来实现自动登录淘宝网。Selenium是一个用于Web应用程序自动化的工具,可以模拟用户的行为来自动获取网络资源。在本...
在IT行业中,HttpClient是一个非常重要的工具,特别是在网络编程和网页自动化操作中。本文将深入探讨如何使用HttpClient库来实现一个自动注册网站的功能。这个“httpclient自动注册网站”的项目涉及了HTTP协议的理解...
在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...
Java模拟淘宝登录源码是一种常见的网络编程技术,主要用于自动化测试、数据抓取或者模拟用户行为。在这个场景中,我们使用的工具是HTTPClient库,这是一个强大的Java HTTP客户端应用编程接口,可以方便地处理HTTP...
由于CookieStore已经被设置在上下文中,HttpClient会自动附带之前登录时获取的Cookie,从而保持会话: ```java HttpGet subsequentRequest = new HttpGet("http://example.com/protected/page"); HttpResponse ...
在本实例中,我们将探讨如何使用HttpClient库来模拟登录网站,获取用户信息,以及处理带有验证码的登录场景。 首先,我们需要理解HttpClient的基本使用。HttpClient的核心类包括HttpClient本身,HttpGet、HttpPost...
随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...
### Httpclient官网教程中文版知识点总结 #### 一、引言 HTTP协议作为互联网的核心通信标准之一,在现代网络服务及物联网设备中扮演着至关重要的角色。随着技术的发展,越来越多的应用和服务依赖于HTTP协议来实现...
本示例将详细介绍如何使用HttpClient实现网易相册的登录。 首先,我们需要了解HttpClient的基本使用。HttpClient主要包括以下几个核心组件: 1. `CloseableHttpClient`:这是HttpClient的主要接口,负责创建和管理...
这篇博客“HttpClient4模拟登录回贴”显然探讨了如何利用HttpClient4库进行网络模拟登录以及在特定网站上发布帖子。HttpClient4适用于各种场景,如自动化测试、数据抓取等,它允许开发者构建复杂的HTTP交互逻辑。 ...
### httpclient 测试登录并提交表单功能 #### 概述 本文将详细介绍如何使用Apache HttpClient库进行模拟登录以及提交表单数据的操作。通过一个具体的示例程序来演示这一过程,帮助读者理解整个流程。 #### 使用...
HttpClient代理访问网络
在描述中提到,“最新版httpclient自动登录人人代码”意味着这个压缩包包含了一个使用HttpClient实现的人人网登录程序。这个程序可能包含了设置用户名和密码,发送POST请求到人人网登录接口,以及解析和验证登录结果...
《HttpClient 4.0 使用详解:访问开心网组件实例》 HttpClient 是 Apache 开源基金会提供的一个 HTTP 客户端库,被广泛应用于 Java 开发中,用于执行 HTTP 请求。HttpClient 4.0 版本引入了许多改进和新特性,使得...
本篇文章将详细讲解如何使用HttpClient进行模拟登录操作,结合源码分析,帮助开发者深入理解其工作原理。 HttpClient库由Apache基金会开发,提供了全面的HTTP协议支持,包括标准与扩展的HTTP方法、连接管理、重试...
当收到包含Set-Cookie头的响应时,HttpClient会自动保存cookie,并在后续请求中发送它们。 7. **源码分析** 博文链接提供的源码可能展示了如何利用HttpClient库构造请求,发送登录数据,处理响应,以及如何解析...
这篇最新的文章“HttpClient4模拟登录腾讯微博”探讨了如何利用HttpClient4实现对腾讯微博的模拟登录,这在自动化测试、数据抓取等场景中非常实用。 HttpClient4库提供了丰富的API,可以定制化地构造HTTP请求,包括...