国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 双流县| 安西县| 开原市| 东明县| 娄底市| 辽阳县| 收藏| 凭祥市| 三门县| 莲花县| 阳信县| 双流县| 水城县| 郸城县| 温宿县| 九龙坡区| 贵定县| 宜昌市| 基隆市| 兴宁市| 衡阳县| 隆化县| 盐边县| 定边县| 桂平市| 玛纳斯县| 松阳县| 海伦市| 兰考县| 措美县| 汉中市| 神木县| 望江县| 沙洋县| 特克斯县| 繁昌县| 丽江市| 奈曼旗| 宜昌市| 双鸭山市| 安陆市|