国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java抓取網(wǎng)頁數(shù)據(jù)獲取網(wǎng)頁中所有的鏈接實例分享

2019-11-26 15:49:29
字體:
供稿:網(wǎng)友

效果圖



復(fù)制代碼 代碼如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HtmlParser {
 /**
  * 要分析的網(wǎng)頁
  */
 String htmlUrl;

 /**
  * 分析結(jié)果
  */
 ArrayList<String> hrefList = new ArrayList();

 /**
  * 網(wǎng)頁編碼方式
  */
 String charSet;

 public HtmlParser(String htmlUrl) {
  // TODO 自動生成的構(gòu)造函數(shù)存根
  this.htmlUrl = htmlUrl;
 }

 /**
  * 獲取分析結(jié)果
  *
  * @throws IOException
  */
 public ArrayList<String> getHrefList() throws IOException {

  parser();
  return hrefList;
 }

 /**
  * 解析網(wǎng)頁鏈接
  *
  * @return
  * @throws IOException
  */
 private void parser() throws IOException {
  URL url = new URL(htmlUrl);
  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  connection.setDoOutput(true);

  String contenttype = connection.getContentType();
  charSet = getCharset(contenttype);

  InputStreamReader isr = new InputStreamReader(
    connection.getInputStream(), charSet);
  BufferedReader br = new BufferedReader(isr);

  String str = null, rs = null;
  while ((str = br.readLine()) != null) {
   rs = getHref(str);

   if (rs != null)
    hrefList.add(rs);
  }

 }

 /**
  * 獲取網(wǎng)頁編碼方式
  *
  * @param str
  */
 private String getCharset(String str) {
  Pattern pattern = Pattern.compile("charset=.*");
  Matcher matcher = pattern.matcher(str);
  if (matcher.find())
   return matcher.group(0).split("charset=")[1];
  return null;
 }

 /**
  * 從一行字符串中讀取鏈接
  *
  * @return
  */
 private String getHref(String str) {
  Pattern pattern = Pattern.compile("<a href=.*</a>");
  Matcher matcher = pattern.matcher(str);
  if (matcher.find())
   return matcher.group(0);
  return null;
 }

 public static void main(String[] arg) throws IOException {
  HtmlParser a = new HtmlParser("http://news.163.com/");
  ArrayList<String> hrefList = a.getHrefList();
  for (int i = 0; i < hrefList.size(); i++)
   System.out.println(hrefList.get(i));

 }

}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉沽区| 双柏县| 土默特左旗| 乌拉特中旗| 黔西| 尚志市| 平乐县| 桐城市| 雷波县| 阿瓦提县| 虎林市| 通州区| 库尔勒市| 邓州市| 正阳县| 图们市| 上高县| 永新县| 清原| 汉川市| 中西区| 平南县| 霍州市| 金阳县| 元阳县| 星子县| 抚州市| 微山县| 扶沟县| 应城市| 东山县| 汉寿县| 新郑市| 东平县| 陇西县| 大埔县| 墨竹工卡县| 封开县| 滕州市| 齐齐哈尔市| 西华县|