- 浏览: 551442 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (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 748解析xml import org.dom4j.Docume ... -
Json转换利器Gson
2013-12-13 08:59 490转: http://blog.csdn.net/lk_blog ... -
asm jar包冲突的问题和解决方法(转)
2013-11-03 01:48 1076asm jar包冲突的问题和解决方法 在用Spring+Hi ... -
Spring ehCache 示例
2013-04-28 15:46 748http://blog.chinaunix.net/uid-2 ... -
将json字符串转换为bean (json-lib)
2013-04-26 15:26 972Json-lib可以将Java对象转成json格式的字符串,也 ... -
QPID学习
2013-03-09 14:13 4407最近在看QPID 首先看下QPID是什么,他是个消息队列,用 ... -
短网址的原理和实现
2013-01-22 15:36 15306微博上经常会看到类似 http://t.cn/Afafhe 这 ... -
JAVA实现栈(stack)与堆(heap)
2013-01-11 17:22 889Java实现 栈(stack)与堆(heap) 上次写过一 ... -
Tomcat7.0下实现的websocket 代码
2013-01-07 19:37 938测试环境: JDK1.6 Tomcat7.0.30 ... -
java IO写入文件效率——几种方法比较
2012-11-02 11:17 1052总结: 如果按字符和字节来分类,除方法1和2,其余都是按字符 ... -
Apache自带压力测试工具AB的使用方法
2012-09-18 11:26 1275使用例子: 1、打开dos界面,开始-》运行-》输入“cmd ... -
MyEclipse6.01注册码,Java源码
2012-07-02 16:12 1068不用为注册码犯愁了.. 下面是在网上搜索到的一段代码 ,分享给 ... -
ant解决OutOfMemoryError 或者Error starting modern compiler
2012-05-11 16:36 1342起因:在执行ant脚本的时候 ,报的错误是 Error st ... -
Java中使用Json 用到的jar包
2012-02-22 08:25 1341操作json开源的Jar包很多 ,那么多的jar选择哪个好呢 ... -
JsonUtils 类,将任意数据格式转换为Json格式
2012-02-21 09:12 1782package json; ... -
Java生成二维码或一维条形码(待续 未完)
2012-02-13 08:22 1721Java生成二维码或一维条形码(待续) 前段时间用了“ ... -
Java操作SVN(待续)
2012-02-02 08:31 982一般大家都会直接使用snv客户端或者在eclipse中svn插 ... -
使用BeanUtils类简化request和resultset转换
2012-02-01 15:41 1058转:http://xdwangiflytek.iteye.co ... -
用Java实现按字节长度截取中英文数字字符串的方法总结 .
2011-12-20 16:59 1618转:http://blog.csdn.net/yanwudin ... -
JAVA读写INI文件,亲测
2011-12-01 16:01 4022代码如下: import java.io.Buf ...
相关推荐
HttpClient get、post 请求,抓取网络数据,jar包以及源码
用来开发网络爬虫,抓取网页资料的工具包,更加高效开发
利用HttpClient抓取网页中简单的数据,数据可存入数据库进行分析
httpClient包,提供了网络搜索工具,用于网络爬虫工程的开发。主要用于抓取资源的开发。
这是一个Java Swing项目,通过HttpClient和Jsoup抓取网站数据 数据分析 显示开奖信息包括:期号、开奖时间、开奖结果、已投注数、金蛋总数、中奖人数等 报表统计 单双/大小饼状图,0~27出现次数柱状图 系统设置 设置...
frameHtml 是 httpclient 实现网络抓取,生成静态页面的 demo,里面包含它的 api 说明文档。
通过Java网络爬虫爬取指定代理ip网上的ip,利用了jsoup、httpclient技术实现
使用Java的HttpClient网络编程工具来模拟登录学校PC端正方教务管理系统,通过发送Get或Post请求,抓取返回的HTTP数据包并分析,获取目标数据,将获取的数据处理后在微信小程序上面呈现给用户,并再将用户提交的数据...
网页抓取:使用Java的网络编程库(如HttpURLConnection、Apache HttpClient等)来发送HTTP请求,获取网页的HTML内容。 网页解析:利用Java的HTML解析库(如Jsoup、HtmlCleaner等)来解析网页的HTML结构,提取出所需...
数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 验证码自动识别方法 ...
内容主要包括开发网络爬虫所需要的 Java 语法基础和网络爬虫的工作原理 , 如何使用开源组件 HttpClient 和爬虫框架 Crawler ^ 抓取网页信息 , 以及针对抓取到的文本进行有效信息的提取 。 为了扩展抓取能力 , ...
内容主要包括开发网络爬虫所需要的 Java 语法基础和网络爬虫的工作原理 , 如何使用开源组件 HttpClient 和爬虫框架 Crawler ^ 抓取网页信息 , 以及针对抓取到的文本进行有效信息的提取 。 为了扩展抓取能力 , ...
内容主要包括开发网络爬虫所需要的 Java 语法基础和网络爬虫的工作原理 , 如何使用开源组件 HttpClient 和爬虫框架 Crawler ^ 抓取网页信息 , 以及针对抓取到的文本进行有效信息的提取 。 为了扩展抓取能力 , ...
内容主要包括开发网络爬虫所需要的 Java 语法基础和网络爬虫的工作原理 , 如何使用开源组件 HttpClient 和爬虫框架 Crawler ^ 抓取网页信息 , 以及针对抓取到的文本进行有效信息的提取 。 为了扩展抓取能力 , ...
Java的网络爬虫是一种用于从互联网上获取信息的程序,通常用于抓取网页内容、收集数据或执行其他自动化任务。网络爬虫是搜索引擎、数据挖掘和信息收集等领域的重要工具。 Java的网络爬虫通常基于Java的网络编程库,...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
内容主要包括开发网络爬虫所需要的 Java 语法基础和网络爬虫的工作原理 , 如何使用开源组件 HttpClient 和爬虫框架 Crawler ^ 抓取网页信息 , 以及针对抓取到的文本进行有效信息的提取 。 为了扩展抓取能力 , ...
使用httpclient,jsoup,dom4j,json-lib,SWT创建的可下载小说的网络爬虫项目。 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...