需求大概是这样:比如一个页面里面有很多文字,现在需要将其中的某些关键字提取出来,比如:姓名 xxx 地址:xxx
不知道用Lucene是否可以实现,请教前辈,麻烦给个解决思路或者方案,谢谢

解决方案 »

  1.   

    网上有现成的网络扒手代码,你可以参考一下。google java 网络扒手   很多的。
      

  2.   


    import java.io.BufferedInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.StringReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    public class Test {
        public static void main(String[] args) throws Exception{
            String uri="请求的URL";
            URL url = new URL(uri);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.connect();
            InputStream in = new BufferedInputStream(conn.getInputStream());
            InputStreamReader isr = new InputStreamReader(in,encoding);
            int str=-1;
            StringBuffer sb=new StringBuffer();
            while((str=isr.read())!=-1)
                sb.append((char)str);
            isr.close();
            //然后通过正则来解释你sb字符串就行了!               }
    }
      

  3.   

    package test;import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.URL;import sun.net.www.protocol.http.HttpURLConnection;public class CatchData1 {
    public static String getPageContent(String strUrl, String strPostRequest,
    int maxLength) {
    // 读取结果网页
    StringBuffer buffer = new StringBuffer();
    System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
    System.setProperty("sun.net.client.defaultReadTimeout", "5000");
    try {
    URL newUrl = new URL(strUrl);
    HttpURLConnection hConnect = (HttpURLConnection) newUrl
    .openConnection();
    // POST方式的额外数据
    if (strPostRequest.length() > 0) {
    hConnect.setDoOutput(true);
    OutputStreamWriter out = new OutputStreamWriter(hConnect
    .getOutputStream());
    out.write(strPostRequest);
    out.flush();
    out.close();
    }
    // 读取内容
    BufferedReader rd = new BufferedReader(new InputStreamReader(
    hConnect.getInputStream()));
    int ch;
    for (int length = 0; (ch = rd.read()) > -1
    && (maxLength <= 0 || length < maxLength); length++)
    buffer.append((char) ch);
    rd.close();
    hConnect.disconnect();
    System.out.println(buffer);
    return buffer.toString().trim();
    } catch (Exception e) {
    // return "错误:读取网页失败!";
    return null;
    }
    } public static void main(String[] args) {
    getPageContent(
    "www.163.com",
    "strPostRequest", 99999999);
    }
    }