使用正則表示式實現網頁爬蟲。
阿新 • • 發佈:2018-12-06
網頁爬蟲:就是一個程式用於在網際網路中獲取指定規則的資料。
思路:
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伺服器
執行結果: