簡單的Java網絡爬蟲(獲取一個網頁中的郵箱)

 1 import java.io.BufferedReader;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileReader;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6 import java.net.URL;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 import java.util.regex.Matcher;
10 import java.util.regex.Pattern;
11 import java.io.*;
12 
13 public class SpiderTest {
14 
15     public static void main(String[] args) throws IOException {
16         // TODO 自動生成的方法存根
17         List<String> list =Search();
18    for(String mail:list)
19    {
20        System.out.println(mail);
21    }
22     }
23  public static List<String> Search() throws IOException{
24         @SuppressWarnings("resource")
25       //要抓取的網頁
26         URL url =new URL("http://tieba.baidu.com/p/2314539885");   
27       //獲取網頁html文件中的信息
28         BufferedReader buf=new BufferedReader(new InputStreamReader(url.openStream()));  
29       //建立一個list來保存數據
30         List<String> list =new ArrayList<String>();   
31       //使用正則表達式來匹配郵箱
32        String main_regex="\\w+@\\w+(\\.\\w+)+";   
33         Pattern p= Pattern.compile(main_regex);
34        String line=null;
35        while((line=buf.readLine())!=null)
36        {
37            Matcher m=p.matcher(line);
38            while(m.find()){
39                list.add(m.group());
40            }
41        }
42      return list;
43  }
44 }

一個簡單的網絡爬蟲基本上有這幾步:html

  1. 獲取網頁中的數據
  2. 匹配符合正則表達式的數據,將數據加入List
  3. 將數據輸出到文件中或打印輸出

我寫的這個爬蟲是來抓取百度貼吧裏留郵箱的一個頁面中的全部的郵箱。(圖片沒打碼不知道會不會有侵犯隱私的嫌疑)java

相關文章
相關標籤/搜索