Mesaje recente

Members
Stats
  • Total Posts: 17,786
  • Total Topics: 1,234
  • Online today: 227
  • Online ever: 340
  • (22 November 2024, 00:10)
Users Online
Users: 0
Guests: 215
Total: 215

rezultate la un matcher java

Started by kquizak, 09 February 2007, 02:19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kquizak

cam asta fac...cer de la google o pagina iar apoi selectez linkurile cu rezultate confruntandu-le cu o expresie regulata...
in mod normal ar trebui sa fie 10 rezultate(tot atatea potriviri)...Problema e ca am descusut API-ul pe toate fetele si tot nu imi dau seama
cum obtin stringurile care se potrivesc..ca mai apoi sa le pun intr-un array cu rezultate

    public StringBuffer conectToSite(String protocol,String host,int port,String file){
       
        try  {
        //construim URL pa care il accesam
            URL u = new URL(protocol, host, port, file);
        //declaram socket-ul pt conectare
            Socket s = new Socket(u.getHost(), port);
        //declaram un stream prin care o sa putem transmite serverului 'pasurile'
            OutputStream theOutput = s.getOutputStream();
         // ne propunem sa scriem in socket 
            PrintWriter pw = new PrintWriter(theOutput, false);
         // scrierea comenzilor
         //cerem fisierul ce ne intereseaza si ceea ce putem noi intelege
            pw.print("GET " + u.getFile() + " HTTP/1.0\r\n");
            pw.print("Accept: text/plain, text/html, text/*\r\n");
            pw.print("\r\n");
            pw.flush();
        //declaram un stream prin care o sa citim ce ne-a raspuns
            InputStream in = s.getInputStream();
        //instrumentul de citire
            InputStreamReader isr = new InputStreamReader(in);
        //buffer pt rezultate
            BufferedReader br = new BufferedReader(isr);
            int c;
       
            while ((c = br.read()) != -1) {// atata timp cat sunt biti de citit
        // adauga characterul c la buferul de stringuri
              sb.append((char)c);
            }
           
             
        } catch (Exception ex)  {
            ex.printStackTrace();
            sb=sb.append("");
        } finally  {
        }
        System.out.println("conectat");
        System.out.print(sb.toString());
        return sb;
       
    }
    public void serchForResults(String patern){
        //compilam expresia regulata
        //TODO  pus patern in loc de expresia regulata
        try  {
            Pattern p = Pattern.compile("(<a href=\"http://).{1,100}class=l{1}.{1,100}(</a>)");
            String str;
            str="(<a href=\"http://).{1,100}class=l{1}.{1,100}(</a>)";
            System.out.print(str);
            Matcher match=p.matcher(sb.toString());
           
        } catch (Exception ex)  {
            ex.printStackTrace();
        } finally  {
        }
       
       
    }

am luat sursa pe care o am in sb si am confruntat-o cu regexp si merge perfect...
network-tools.ath.cx ---nmap yourself

kman