1. 程式人生 > >Java實現網頁爬蟲

Java實現網頁爬蟲

public class Demo {
    public static void main(String[] args) throws Exception {
        // 本程式內部異常過多為了簡便,不一Try,直接拋給虛擬機器
         Long StartTime = System.currentTimeMillis();
         System.out.println("--     歡迎使用飛揚簡易網頁爬蟲程式      --");
         System.out.println("");
         System.out.println("--請輸入正確的網址如http://www.baidu.com--");
         Scanner input = new Scanner(System.in);// 例項化鍵盤輸入類
         String webaddress = input.next();// 建立輸入物件
         File file = new File("D:" + File.separator + "test.txt");// 例項化檔案類物件
        // 並指明輸出地址和輸出檔名
         Writer outWriter = new FileWriter(file);// 例項化outWriter類
         URL url = new URL(webaddress);// 例項化URL類。
         URLConnection conn = url.openConnection();// 取得連結
         BufferedReader buff = new BufferedReader(new InputStreamReader(
         conn.getInputStream()));// 取得網頁資料
         String line = null;
         int i=0;
         String regex = "\\
[email protected]
\\w+(\\.\\w+)+";// 宣告正則,提取網頁前提 Pattern p = Pattern.compile(regex);// 為patttern例項化 outWriter.write("該網頁中所包含的的郵箱如下所示:\r\n"); while ((line = buff.readLine()) != null) { Matcher m = p.matcher(line);// 進行匹配 while (m.find()) { i++; outWriter.write(m.group() + ";\r\n");// 將匹配的字元輸入到目標檔案 } } Long StopTime = System.currentTimeMillis(); String UseTime=(StopTime-StartTime)+""; outWriter.write("--------------------------------------------------------\r\n"); outWriter.write("本次爬取頁面地址:"+webaddress+"\r\n"); outWriter.write("爬取用時:"+UseTime+"毫秒\r\n"); outWriter.write("本次共得到郵箱:"+i+"條\r\n"); outWriter.write("****謝謝您的使用****\r\n"); outWriter.write("--------------------------------------------------------"); outWriter.close();// 關閉檔案輸出操作 System.out.println(" —————————————————————\t"); System.out.println("|頁面爬取成功,請到D盤根目錄下檢視test文件|\t"); System.out.println("| |"); System.out.println("|如需重新爬取,請再次執行程式,謝謝您的使用|\t"); System.out.println(" —————————————————————\t"); } } }

通過Java內部自帶的URL協議去下載網頁,然後通過正則表示式把協議裡面我們需要的部分刷選出來,作為寫到本地磁碟的test檔案裡面。這是一個簡單的列子,也是一個通常大家都是用的列子。