java 获取网页标题_java 使用正则表达式从网页上提取网站标题

packagecatchhtml;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classGetHtmlTitle {publicGetHtmlTitle(String htmlUrl){

System.out.println("/n------------开始读取网页(" + htmlUrl + ")-----------");

String htmlSource= "";

htmlSource= getHtmlSource(htmlUrl);//获取htmlUrl网址网页的源码

System.out.println("------------读取网页(" + htmlUrl + ")结束-----------/n");

System.out.println("------------分析(" + htmlUrl + ")结果如下-----------/n");

String title=getTitle(htmlSource);

System.out.println("网站标题: " +title);

}/*** 根据网址返回网页的源码

*@paramhtmlUrl

*@return

*/

publicString getHtmlSource(String htmlUrl){

URL url;

StringBuffer sb= newStringBuffer();try{

url= newURL(htmlUrl);

BufferedReader in= new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));//读取网页全部内容

String temp;while ((temp = in.readLine()) != null)

{

sb.append(temp);

}

in.close();

}catch(MalformedURLException e) {

System.out.println("你输入的URL格式有问题!请仔细输入");

}catch(IOException e) {

e.printStackTrace();

}returnsb.toString();

}/*** 从html源码(字符串)中去掉标题

*@paramhtmlSource

*@return

*/

publicString getTitle(String htmlSource){

List list = new ArrayList();

String title= "";//Pattern pa = Pattern.compile("

.*?", Pattern.CANON_EQ);也可以

Pattern pa = Pattern.compile("

.*?");//源码中标题正则表达式

Matcher ma =pa.matcher(htmlSource);while (ma.find())//寻找符合el的字串

{

list.add(ma.group());//将符合el的字串加入到list中

}for (int i = 0; i < list.size(); i++)

{

title= title +list.get(i);

}returnoutTag(title);

}/*** 去掉html源码中的标签

*@params

*@return

*/

publicString outTag(String s)

{return s.replaceAll("<.>", "");

}public static voidmain(String[] args) {

String htmlUrl= "http://www.157buy.com";newGetHtmlTitle(htmlUrl);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值