- 浏览: 563528 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (350)
- Sybase (30)
- SQL SERVER2005 (14)
- 数据库 (27)
- SSH框架 (27)
- WebService (21)
- 下载-软件收藏 (15)
- 随笔-日常使用 (9)
- Flex 相关 (13)
- Linux (11)
- Web (64)
- XML相关 (9)
- Socket相关 (1)
- Elipse (3)
- 统计报表 (11)
- 线程相关 (3)
- Java相关 (37)
- JAVASCRIPT (19)
- JAVA反射 (3)
- JSP标签 (3)
- 随笔-其他 (2)
- 随笔-设计模式 (3)
- 随笔-架构师相关 (1)
- 下载-源码 (7)
- 下载-帮助文档 (1)
- 下载-插件 (6)
- 技术-.NET (2)
- 技术-Excel VBA (8)
- 应用-地图相关 (2)
- 应用-GSM短信猫 (5)
- 应用-单点登录 (3)
- Android相关 (3)
最新评论
-
sucheng2016:
发现jconn4.jar 里面有getBlob(String) ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
sucheng2016:
java.lang.UnsupportedOperationE ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
ok123zxx:
没下文了吗
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor -
q1345111:
大家这个问题 尚未完成方法 com.sybase.jdbc3. ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
bdk82924:
heshujing217187 写道问题同1楼一样,求解!换j ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
利用 HttpClient 进行抓取 ,有如下几点要注意的
1、抓取普通页面,注意中文问题
2、抓取需要登录的页面,有验证码 和无验证码区分
3、防抓取页面,如Javaeye
4、设置代理服务器
5、解析抓取后的内容,解析可以 用Jsoup,文档:http://www.open-open.com/jsoup/
代码:
public final static void main(String[] args) throws Exception
{
try
{
String url = "http://bdk82924.iteye.com/admin/blogs/1329405";
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(url);
// 设置http头
post.setRequestHeader(new Header("Content-type", "text/xml; charset=\"utf-8\""));
post.setRequestHeader(new Header("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"));
// 设置代理服务器
client.getHostConfiguration().setProxy("proxy.com", 80);
int result = client.executeMethod(post);
if (result != 200)
{
// 失败的响应代码
System.out.println("获取失败,rspCode:" + result);
}
System.out.println(new String(post.getResponseBody(), "UTF-8"));
} catch (Exception e)
{
e.printStackTrace();
}
}
2、抓取需要登录的页面
public class Client
{
private static Cookie[] cookies;
/**
* 的到Http请求结果
*
* @param url
* 请求地址
* @param parms
* 请求参数
* @return
*/
public static void doLogin(String url, Map parms)
{
byte[] body = new byte[0];
String str = null;
// 构造HttpClient的实例
HttpClient client = new HttpClient();
// 创建GET方法的实例
PostMethod postMethod = new PostMethod(url);
// 填入各个表单域的值
NameValuePair[] data = new NameValuePair[parms.keySet().size()];
Iterator it = parms.entrySet().iterator();
int i = 0;
while (it.hasNext())
{
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
data[i] = new NameValuePair(key.toString(), value.toString());
i++;
}
// 将表单的值放入postMethod中
postMethod.setRequestBody(data);
try
{
// 执行postMethod
int statusCode = client.executeMethod(postMethod);
// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY)
{
// 从头中取出转向的地址
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null)
{
location = locationHeader.getValue();
} else
{
System.err.println("Location field value is null.");
}
}
cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
} catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 的到Http请求结果
*
* @param url
* 请求地址
* @param parms
* 请求参数
* @return
*/
public static byte[] getURL(String url)
{
byte[] body = new byte[0];
// 构造HttpClient的实例
HttpClient client = new HttpClient();
// 创建GET方法的实例
GetMethod get = new GetMethod(url);
get.setRequestHeader("Cookie", cookies.toString());
try
{
client.executeMethod(get);
body = get.getResponseBody();
} catch (Exception e)
{
e.printStackTrace();
}
return body;
}
public static void main(String[] args) throws UnsupportedEncodingException
{
String loginURL = "http://XX/login.do";
String testURL = "http://XX/a.do";
Map map = new HashMap();
map.put("username", "XX");
map.put("passwd", "XX");
doLogin(loginURL, map);
String s = new String(getURL(testURL), "utf-8");
System.out.println(s);
}
}
- lib.zip (607 KB)
- 下载次数: 8
发表评论
-
Jav解析soap的xml
2015-05-17 21:13 793解析xml import org.dom4j.Docume ... -
Json转换利器Gson
2013-12-13 08:59 520转: http://blog.csdn.net/lk_blog ... -
asm jar包冲突的问题和解决方法(转)
2013-11-03 01:48 1147asm jar包冲突的问题和解决方法 在用Spring+Hi ... -
Spring ehCache 示例
2013-04-28 15:46 775http://blog.chinaunix.net/uid-2 ... -
将json字符串转换为bean (json-lib)
2013-04-26 15:26 1007Json-lib可以将Java对象转成json格式的字符串,也 ... -
QPID学习
2013-03-09 14:13 4442最近在看QPID 首先看下QPID是什么,他是个消息队列,用 ... -
短网址的原理和实现
2013-01-22 15:36 15365微博上经常会看到类似 http://t.cn/Afafhe 这 ... -
JAVA实现栈(stack)与堆(heap)
2013-01-11 17:22 916Java实现 栈(stack)与堆(heap) 上次写过一 ... -
Tomcat7.0下实现的websocket 代码
2013-01-07 19:37 985测试环境: JDK1.6 Tomcat7.0.30 ... -
java IO写入文件效率——几种方法比较
2012-11-02 11:17 1075总结: 如果按字符和字节来分类,除方法1和2,其余都是按字符 ... -
Apache自带压力测试工具AB的使用方法
2012-09-18 11:26 1307使用例子: 1、打开dos界面,开始-》运行-》输入“cmd ... -
MyEclipse6.01注册码,Java源码
2012-07-02 16:12 1097不用为注册码犯愁了.. 下面是在网上搜索到的一段代码 ,分享给 ... -
ant解决OutOfMemoryError 或者Error starting modern compiler
2012-05-11 16:36 1383起因:在执行ant脚本的时候 ,报的错误是 Error st ... -
Java中使用Json 用到的jar包
2012-02-22 08:25 1373操作json开源的Jar包很多 ,那么多的jar选择哪个好呢 ... -
JsonUtils 类,将任意数据格式转换为Json格式
2012-02-21 09:12 1807package json; ... -
Java生成二维码或一维条形码(待续 未完)
2012-02-13 08:22 1760Java生成二维码或一维条形码(待续) 前段时间用了“ ... -
Java操作SVN(待续)
2012-02-02 08:31 1016一般大家都会直接使用snv客户端或者在eclipse中svn插 ... -
使用BeanUtils类简化request和resultset转换
2012-02-01 15:41 1085转:http://xdwangiflytek.iteye.co ... -
用Java实现按字节长度截取中英文数字字符串的方法总结 .
2011-12-20 16:59 1657转:http://blog.csdn.net/yanwudin ... -
JAVA读写INI文件,亲测
2011-12-01 16:01 4061代码如下: import java.io.Buf ...
相关推荐
在IT领域,网络数据抓取是一项重要的技能,它允许我们从网页中提取所需的信息,用于数据分析、内容聚合或自动化任务。HttpClient和Jsoup是两个Java库,分别专注于HTTP通信和HTML解析,它们常被组合使用来高效地抓取...
Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理、重试策略、超时设置等,使得在Java中进行网络通信变得更加便捷。HttpClient库不仅支持基本的HTTP协议,还支持HTTPS以及一些...
在IT领域,网络爬虫是获取网页数据的重要手段,而HttpClient和Jsoup是两种常用的Java库,用于实现这一目的。HttpClient提供了低级别的HTTP通信能力,而Jsoup则是一个解析和操作HTML文档的强大工具。本教程将详细介绍...
HTTPClient是Apache软件基金会的 HttpClient项目提供的一款Java库,它为Java程序员提供了强大的HTTP客户端功能,使得能够方便地进行网络请求和网页抓取。在本文中,我们将深入探讨HTTPClient库的基本概念、主要功能...
总结来说,HttpClient是一个强大的Java库,用于网络数据抓取和通信。正确地引入并使用相关的jar包,可以帮助开发者高效地实现HTTP请求,从而获取和处理网页数据。在实际开发中,应结合具体需求灵活运用HttpClient的...
在IT行业中,网络爬虫是数据获取的重要手段,它能够自动化地从互联网上抓取大量信息。HttpClient是一个广泛使用的Java库,专为处理HTTP协议而设计,尤其在开发网络爬虫时扮演着核心角色。本篇文章将深入探讨...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。...在本例中,我们将探讨如何使用HttpClient登录163邮箱。...正确配置和使用HttpClient,能够实现高效且可靠的网络通信。
"HttpClient绕过验证码直接抓取" HttpClient是一种常用的网络请求库,常用于网络爬虫、自动化测试、数据爬取等领域。今天,我们将讨论如何使用HttpClient绕过验证码直接抓取网站数据。 绕过验证码的原理 验证码是...
HttpClient库使得开发者能够轻松地实现网络数据的抓取和交换,这对于进行Web服务交互、网页爬虫或者任何需要从互联网获取数据的应用来说都非常有用。 ### GET请求 GET请求是最常见的HTTP方法,用于从服务器上获取...
《HttpClient:网络爬虫...通过熟练掌握HttpClient的使用,开发者可以构建出稳定、高效的网络爬虫,实现对互联网数据的高效抓取和处理。在实际项目中,应结合具体需求,灵活运用HttpClient的各种特性,以实现最佳效果。
在Java应用中,HttpClient常用于网页抓取、API调用以及自动化测试等场景。 本压缩包文件"httpClient"很可能包含了HttpClient库所需的必备JAR文件,这些文件通常包括HttpClient的核心库、依赖的第三方库以及可能的...
总的来说,HTMLPARSER和HTTPCLIENT是构建网络爬虫的强大工具,它们可以帮助开发者高效地抓取和解析网页内容。通过学习和实践,你不仅可以创建简单的爬虫,还能掌握处理复杂网页结构和网络请求的技术,这对于数据挖掘...
在Web开发中,HttpClient常常被用于网页抓取、API调用和其他网络通信任务。本篇文章将深入探讨重新封装的HttpClient类,以及如何利用它进行高效且灵活的网络请求。 首先,我们来看一下`HttpClient`类的基本用法。...
在Java应用程序中,HttpClient常用于Web服务的调用、数据抓取或自动化测试等场景。 HttpClient的核心特性包括: 1. **请求构造与执行**:HttpClient允许开发者精确控制HTTP请求的每一个细节,如方法类型(GET、...
HttpClient 4.1.2广泛应用于Web服务调用、数据抓取、文件上传下载等场景。例如,在微服务架构中,服务间通信经常使用HttpClient进行RESTful API调用;在爬虫项目中,HttpClient用于向目标网站发送HTTP请求,获取网页...
在本项目中,"C#网络抓取源码范例(分析天涯文章)"是一个使用C#编程语言实现的网络爬虫程序,旨在抓取并分析天涯社区中的文章内容。主要涉及的技术点包括网络请求、HTML解析、数据提取以及特定内容过滤。下面将详细...
HttpClient 是 Apache 开源组织提供的一款强大且功能丰富的 Java HTTP 客户端库,广泛应用于网络数据的抓取、服务接口的测试以及分布式系统中的通信。HttpClient 4.5 版本作为其重要的一个迭代,引入了许多新特性和...
在IT行业中,网络抓取(Web Scraping)是一种获取网页数据的技术,通常用于自动化数据分析、信息提取或构建搜索引擎。在本教程中,我们将探讨如何使用C#语言进行网络抓取,特别是针对那些不允许直接复制粘贴的网站。...