Java實現網頁爬蟲
阿新 • • 發佈:2018-10-31
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檔案裡面。這是一個簡單的列子,也是一個通常大家都是用的列子。