1. 程式人生 > >使用正則表示式實現網頁爬蟲。

使用正則表示式實現網頁爬蟲。

網頁爬蟲:就是一個程式用於在網際網路中獲取指定規則的資料。

思路:
1.為模擬網頁爬蟲,我們可以現在我們的tomcat伺服器端部署一個1.html網頁。(部署的步驟:在tomcat目錄的webapps目錄的ROOTS目錄下新建一個1.html。使用notepad++進行編輯,編輯內容為:
在這裡插入圖片描述

2.使用URL與網頁建立聯絡
3.獲取輸入流,用於讀取網頁中的內容
4.建立正則規則,因為這裡我們是爬去網頁中的郵箱資訊,所以建立匹配 郵箱的正則表示式:String regex="\[email protected]\w+(\.\w+)+";
5.將提取到的資料放到集合中。

程式碼:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * 網頁爬蟲:就是一個程式用於在網際網路中獲取指定規則的資料
 * 
 * 
 */
public class RegexDemo {

	public static void main(String[] args) throws Exception {
		
		List<String> list=getMailByWeb();
		for(String str:list){
			System.out.println(str);
		}
		
	}

	private static List<String> getMailByWeb() throws Exception {
		
		//1.與網頁建立聯絡。使用URL
		String path="http://localhost:8080//1.html";//後面寫雙斜槓是用於轉義
		URL url=new URL(path);
		//2.獲取輸入流
		InputStream is=url.openStream();
		//加緩衝
		BufferedReader br=new BufferedReader(new InputStreamReader(is));
		//3.提取符合郵箱的資料
		String regex="\\
[email protected]
\\w+(\\.\\w+)+"; //進行匹配 //將正則規則封裝成物件 Pattern p=Pattern.compile(regex); //將提取到的資料放到一個集合中 List<String> list=new ArrayList<String>(); String line=null; while((line=br.readLine())!=null){ //匹配器 Matcher m=p.matcher(line); while(m.find()){ //3.將符合規則的資料儲存到集合中 list.add(m.group()); } } return list; } }

注意:在執行前需要先開啟tomcat伺服器

執行結果:
在這裡插入圖片描述