利用JSP获取网页源文件并抓取其中的链接地址

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

利用java的net包获取网页源文件,使用正则表达式抓取当中的链接地址,因正则表达式学艺不精,下面这个例子中并不能抓取所有情况下的href属性中的链接地址

test.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.regex.*" errorPage="" %>

<%

String sCurrentLine;

String sTotalString;

sCurrentLine="";

sTotalString="";

java.io.InputStream l_urlStream;

java.net.URL l_url = new java.net.URL("http://www.5ja.net");

java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();

l_connection.connect();

l_urlStream = l_connection.getInputStream();

java.io.BufferedReader l_reader = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream));

while ((sCurrentLine = l_reader.readLine()) != null)

{

sTotalString+=sCurrentLine;

}

//String regEx = "href=([^\"']*)>";

String regEx ="href=\"([^\"]*)\"";//找出href="****"的链接

Pattern p = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);

Matcher m = p.matcher(sTotalString);

int j=0;

while(m.find()){

j++;

out.println("m.group(" + j + "): " + m.group(0)+"<br>");

}

regEx ="href='([^']*)'";//找出href='****'的链接

p = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);//Pattern.CASE_INSENSITIVE查找忽略大小写

m = p.matcher(sTotalString);

while(m.find()){

j++;

out.println("m.group(" + j + "): " + m.group(0)+"<br>");

}

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航