SayIT
Software => Programare => Topic started by: kquizak on 09 February 2007, 02:19
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...
Cred ca ai nevoie sa citesti link-ul asta:
http://www.regular-expressions.info/java.html