解析网页内容java_java解析Internet网页中的内容

有很多情况下我们需要获得某个网页上内容,例如:获得一个网页上的所有连接。但一般都是更高级的应用,比如获得一个网页表单需要填写的内容,以及form表单提交的连接,这样我们就可以在自己的网页上获得别人网页上的资源了。现在我们就以最简单的获得一个网页上的所有超链接为例介绍一下java解析网页上内容的基本方法。

主要实现就是使用URL和URLConnection两个类获得网页的流信息,然后使用正则表达式等方法取出自己需要的内容,代码如下:package URLConnection;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import java.net.URLConnection;

import java.util.ArrayList;

import java.util.List;

import java.util.StringTokenizer;

public class GetInternet {

/**

* 获得网页中的超链接

* @author letthinking

* @param urlStr url 例如:http://blog.csdn.net/yue19870813?viewmode=list

* @return List

*/

public List getInternet(String urlStr){

List list = new ArrayList();

URL url = null;

URLConnection conn = null;

String nextLine = null;

StringTokenizer tokenizer = null;

try{

//获得网页资源

url = new URL(urlStr);

//获得资源连接

conn = url.openConnection();

conn.connect();

BufferedReader reader = new BufferedReader(new

InputStreamReader(conn.getInputStream()));

//开始读取网页信息解析出网页中的超链接

while((nextLine = reader.readLine()) != null ){

tokenizer = new StringTokenizer(nextLine);

while(tokenizer.hasMoreTokens()){

String urlToken = tokenizer.nextToken();

if(isUrl(urlToken)){

list.add(getHttp(urlToken));

}

}

}

}catch(Exception e){

}

return list;

}

/**

* 判断字符串中是否含有超链接

* @author letthinking

* @param urlToken

* @return

*/

public boolean isUrl(String urlToken){

if(urlToken.indexOf("http") != -1){

return true;

}

return false;

}

/**

* 将字符串中超链接提取出来

* @author letthinking

* @param urlToken

* @return

*/

public String getHttp(String urlToken){

int start = urlToken.indexOf("http");

int end = urlToken.length();

String tempStr = urlToken.substring(start,end);

end = tempStr.indexOf("\"");

if(end == -1){

end = tempStr.length();

}

return tempStr.substring(0,end);

}

public static void main(String[] args){

GetInternet g = new GetInternet();

List list = g.getInternet("http://www.csdn.net/");

System.out.println("开始输出超链接");

for(String str:list){

System.out.println(str);

}

//System.out.println(g.getHttp(""));

}

}       运行后输出超链接,更多高级的应用大家自己拓展吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值