BaoYaEr
java读取网站内容的两种方法
1,HttpClient
利用apache的虚拟客户端包获取某个地址的内容
1
import
java.io.UnsupportedEncodingException;
2
import
java.util.HashSet;
3
import
java.util.Iterator;
4
import
java.util.Set;
5
import
java.util.regex.Matcher;
6
import
java.util.regex.Pattern;
7
8
import
org.apache.commons.httpclient.HttpClient;
9
import
org.apache.commons.httpclient.NameValuePair;
10
import
org.apache.commons.httpclient.methods.PostMethod;
11
12
public
class
catchMain
{
13
14
/** */
/**
15
*
@param
args
16
*/
17
public
static
void
main(String[] args)
{
18
19
20
String url
=
"
http://search.foodqs.com/companysearch.asp
"
;
21
String keyword
=
"
食
"
;
22
String response
=
createhttpClient(url,keyword);
23
}
24
25
public
static
String createhttpClient(String url,String param)
{
26
HttpClient client
=
new
HttpClient();
27
String response
=
null
;
28
String keyword
=
null
;
29
PostMethod postMethod
=
new
PostMethod(url);
30
try
{
31
if
(param
!=
null
)
32
keyword
=
new
String(param.getBytes(
"
gb2312
"
),
"
ISO-8859-1
"
);
33
}
catch
(UnsupportedEncodingException e1)
{
34
//
TODO Auto-generated catch block
35
e1.printStackTrace();
36
}
37
38
NameValuePair[] data
=
{
new
NameValuePair(
"
keyword
"
, keyword) }
;
39
//
将表单的值放入postMethod中
40
postMethod.setRequestBody(data);
41
42
try
{
43
int
statusCode
=
client.executeMethod(postMethod);
44
response
=
new
String(postMethod.getResponseBodyAsString()
45
.getBytes(
"
ISO-8859-1
"
),
"
GBK
"
);
46
}
catch
(Exception e)
{
47
48
e.printStackTrace();
49
}
50
return
response;
51
52
}
53
2.java自带的HttpURLConnection
1
public
static
String getPageContent(String strUrl, String strPostRequest,
2
int
maxLength)
{
3
//
读取结果网页
4
StringBuffer buffer
=
new
StringBuffer();
5
System.setProperty(
"
sun.net.client.defaultConnectTimeout
"
,
"
5000
"
);
6
System.setProperty(
"
sun.net.client.defaultReadTimeout
"
,
"
5000
"
);
7
try
{
8
URL newUrl
=
new
URL(strUrl);
9
HttpURLConnection hConnect
=
(HttpURLConnection) newUrl
10
.openConnection();
11
//
POST方式的额外数据
12
if
(strPostRequest.length()
>
0
)
{
13
hConnect.setDoOutput(
true
);
14
OutputStreamWriter out
=
new
OutputStreamWriter(hConnect
15
.getOutputStream());
16
out.write(strPostRequest);
17
out.flush();
18
out.close();
19
}
20
//
读取内容
21
BufferedReader rd
=
new
BufferedReader(
new
InputStreamReader(
22
hConnect.getInputStream()));
23
int
ch;
24
for
(
int
length
=
0
; (ch
=
rd.read())
>
-
1
25
&&
(maxLength
<=
0
||
length
<
maxLength); length
++
)
26
buffer.append((
char
) ch);
27
rd.close();
28
hConnect.disconnect();
29
return
buffer.toString().trim();
30
}
catch
(Exception e)
{
31
//
return "错误:读取网页失败!";
32
return
null
;
33
}
34
}
发表于 2007-01-26 11:46
大田斗
阅读(3799)
评论(2)
编辑
收藏
所属分类:
java
评论
#
re: java读取网站内容的两种方法
第二个方法会出现中文乱码,该怎么解决?
#
re: java读取网站内容的两种方法
@youthcolor
BufferedReader rd = new BufferedReader(new InputStreamReader( hConnect.getInputStream() ,encoding));
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
mule事件驱动服务
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
在xml的汪洋中遨游之mule篇
linux下java运行脚本
深入浅出之正则表达式【zt】
JavaClassLoader与Package机制
JTA事务初级研究
Spring2.5注释语法
java annotation
J2SE5.0中最有趣的新特性:注释(annotation) [zt]
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
导航
BlogJava
首页
发新随笔
发新文章
联系
聚合
管理
统计
随笔: 32
文章: 427
评论: 144
引用: 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年12月 (1)
2008年4月 (2)
2008年2月 (1)
2008年1月 (1)
2007年12月 (3)
2007年11月 (1)
2007年10月 (3)
2007年7月 (2)
2007年6月 (1)
2007年4月 (2)
2007年3月 (3)
2007年2月 (5)
2007年1月 (3)
2006年12月 (4)
文章分类
axis(6)
(rss)
eclipse(7)
(rss)
Hibernate(30)
(rss)
html/js/css(107)
(rss)
java(106)
(rss)
linux(7)
(rss)
Lucene(7)
(rss)
spring(36)
(rss)
Spring CLOUd(1)
(rss)
Strtus(30)
(rss)
其它(48)
(rss)
开源opensource(48)
(rss)
数据库DateBase(30)
(rss)
设计模式(12)
(rss)
文章档案
2018年8月 (1)
2012年5月 (1)
2012年4月 (2)
2011年7月 (6)
2010年3月 (1)
2010年2月 (1)
2010年1月 (3)
2009年12月 (1)
2009年10月 (1)
2009年8月 (3)
2009年3月 (1)
2009年2月 (1)
2008年12月 (3)
2008年11月 (10)
2008年10月 (3)
2008年9月 (2)
2008年8月 (2)
2008年7月 (4)
2008年6月 (13)
2008年5月 (15)
2008年4月 (9)
2008年3月 (10)
2008年1月 (18)
2007年12月 (33)
2007年11月 (6)
2007年10月 (18)
2007年9月 (10)
2007年8月 (18)
2007年7月 (15)
2007年6月 (25)
2007年5月 (19)
2007年4月 (26)
2007年3月 (38)
2007年2月 (33)
2007年1月 (27)
2006年12月 (27)
2006年11月 (12)
java
Ajax特效网站
cndiy nio
GRO
Hani Suleiman's blog
Java之路
java论坛
J道
mule
mule 入门
oksonic(动画教程)
一路由你
中国eclipse
八进制
在线源码
多线程实战
天火
小米的blogjava
幻境伯克----jface/swt
很全的博克-强
每日一得
满江红
邢红瑞
飞翔
鸟诗选(js)
鸟食轩 (dhtml)
工具
apache中文手册
extjs学习
iconFindre
java 安全
javaresearch
java技巧网
js之王
matrix(study)
prototype api
spring中文
北京IT企业速查
在线流程图工具
雅虎翻译
朋友
Happyshow
hibernate异常
skywalker
sunshow
xf
亚光
同云博客
小弟鹏
张玉磊
昕
李阳
黄鸣
搜索
积分与排名
积分 - 1098440
排名 - 28
最新评论
1. re: hibernate.cfg.xml配置
好全啊 .. 棒棒哒 ~ !
--junqinag.yang
2. re: Quartz任务调度快速入门
我现在来看还是觉得不错
--小任
3. re: js中this的总结
评论内容较长,点击标题查看
--pam
4. re: Quartz任务调度快速入门
楼主辛苦
--yd
5. re: Quartz任务调度快速入门
顶了,内容写的很好
--sen
阅读排行榜
1. 网页不缓存(3536)
2. Form嵌套引起的问题 (2830)
3. 解决IE下CSS背景图片闪烁的Bug(2432)
4. Spring AOP的动态载入原理(2394)
5. 如何制作漂亮的Excel表格(2022)
评论排行榜
1. 北京户口--吃官司(5)
2. 开始→运行→输入的命令集锦(3)
3. 让网页上的所有图片动起来(2)
4. Dom4j 编码问题彻底解决 (1)
5. 心情不爽(1)