java 获得网页源码 获得标题信息

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class URLSource {
  //获取网页标题
  public static String getTitleName(String url) {
 String source="";//存储网页源文件
 source = getSource(url);
 //抽取每个网页的正文内容
 int c  = source.indexOf("<title>");
 int d  = source.indexOf("</title>");
 String titleName=source.substring(c+7,d);
 return titleName;
  }
//获取微博名称
  public static String getWeiboName(String url) {
 String titleName=getTitleName(url);
 //抽取每个网页的正文内容
 int c  = titleName.indexOf("的微博");
 String weiBoName=titleName.substring(0,c);
 return weiBoName;
  }
  //抽取网页的源文件
 private static String getSource(String link) {
  String charset = "GBK";//网页默认编码设置为GBK
  URLConnection connection = null;
try {
 URL url = new URL(link);
 //打开连接
 connection = url.openConnection();
 //如果网页无法打开
 if(null == connection)
 return null;
 //下载源文件
 byte[] buf = new byte[4096];
 InputStream is = null;
 ByteArrayOutputStream os = new ByteArrayOutputStream();
 int count = 0;
 try {
 is = connection.getInputStream();
 while ((count = is.read(buf)) >= 0)
 {
 os.write(buf, 0, count);
 }
 }catch (Exception e) {
 e.printStackTrace();
 if (os.size() == 0)
 {
 return null;
 }
 }
 finally
 {
 try{is.close(); } 
 catch(Exception e){}
 }
 //获取网页的编码格式
 String content = os.toString();
 int fromIndex = content.indexOf("charset=");
 charset = content.substring(fromIndex+8, content.indexOf("\"", fromIndex));
 return new String(os.toByteArray(), charset);
}catch (Exception e) {
 e.printStackTrace();
}
return null;
  }
 public static void main(String[] arg){
System.out.println(getWeiboName("http://t.qq.com/hewenna"));
 } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值