java爬虫類の詳細及び簡単な例

3308 ワード

Java爬虫
一、コード
爬虫類の本質は、ウェブページのソースコードを開いてマッチングして検索し、検索した結果を得ることです。
ウェブページを開く:

URL url = new URL(http://www.cnblogs.com/Renyi-Fan/p/6896901.html);
ウェブページの内容を読み取る:

BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream()));
正規表現をマッチさせる:

tring mail_regex = "\\w+@\\w+(\\.\\w+)+";
保存結果:

List<String> list = new ArrayList<String>();
/*
*取得
*正規規則を対象のパッケージにします。
*Pattern p=Pattern.com mpile(「a*b」)
*//正規オブジェクトのmatcherメソッドによる文字列に関連します。文字列を操作するマッチ対象マッチを取得します。
*Match m=p.matcher(「aaaaaaab」)
*//マッチ機オブジェクトの方法で文字列を操作します。
*booklean b=m.matches()
*/

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
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 Spider {

  public static void main(String[] args) throws IOException {
//    List<String> list = getMails();
//    for(String mail : list){
//      System.out.println(mail);
//    }
  
    List<String> list = getMailsByWeb();
    for(String mail : list){
      System.out.println(mail);
    }
  }

  public static List<String> getMailsByWeb() throws IOException{
    //1,     。
    //URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
    //URL url = new URL("http://localhost:8080/SecondWeb/index.jsp");
    URL url = new URL("http://www.cnblogs.com/Renyi-Fan/p/6896901.html");

    BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream()));


    //2,             。           .
    String mail_regex = "\\w+@\\w+(\\.\\w+)+";

    List<String> list = new ArrayList<String>();

    Pattern p = Pattern.compile(mail_regex);
    String line = null;

    while((line=bufr.readLine())!=null){

      Matcher m = p.matcher(line);
      while(m.find()){
        //3,              。
        list.add(m.group());
      }

    }
    return list;
  }

  public static List<String> getMails() throws IOException{
    //1,     。
    BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));


    //2,             。           .
    String mail_regex = "\\w+@\\w+(\\.\\w+)+";

    List<String> list = new ArrayList<String>();

    Pattern p = Pattern.compile(mail_regex);
    String line = null;

    while((line=bufr.readLine())!=null){

      Matcher m = p.matcher(line);
      while(m.find()){
        //3,              。
        list.add(m.group());
      }

    }
    return list;
  }
}

二、運転結果

[email protected]
[email protected]
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。