Olá Alexeyh,
A muito tempo atraz fiz um filtrador de link pro site alltheweb. E acho que o código dele pode ajudar…
/**
- Classe .
-
- @see
-
-
@since JDK1.4.2
-
-
@author Tiago Silveira
/
import java.net.;
import java.io.*;
import javax.swing.JOptionPane;
class ScanAllTheWeb {
static String busca;
public static void main (String[] args) throws Exception {
try {
// Deleta o arquivo se ele existir
File del = new File(“RESULTADO.txt”);
del.delete();
ScanAllTheWeb all = new ScanAllTheWeb();
busca = JOptionPane.showInputDialog(null, "Procurar pelo oque?", "AllTheWeb V1.0",
JOptionPane.QUESTION_MESSAGE);
busca = busca.replaceAll(" ","+");
System.out.println("Voce esta procurando por: "+busca);
System.out.println("O RESULTADO SERA GRAVADO NO DIRETORIO ONDE ESTA O PROGRAMA");
System.out.println("COM O NOME RESULTADO.TXT");
all.Conecta(0);
} catch (NullPointerException e) {
JOptionPane.showMessageDialog(null, "Operação Cancelada", "AllTheWeb V1.0 - Atenção",
JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}
public static void Conecta(int pag) throws Exception {
try {
FileWriter writer = new FileWriter(new File("RESULTADO.txt"),true);
PrintWriter resultado = new PrintWriter(writer);
URL u = new URL ("http://www.alltheweb.com/search?cat=web&cs=utf8&q="+ busca +"&rys=0&_sb_lang=any&o="+ pag +"");
//System.out.println (u);
URLConnection conn = u.openConnection();
InputStream is = conn.getInputStream();
BufferedReader rd = new BufferedReader (new InputStreamReader (is));
String line;
String t1 = "<span class=\"resURL\">http://";
String t2 = " </span>";
String teste;
String resulteste;
while ((line = rd.readLine())!= null) {
//System.out.println (line);
teste = line;
teste = teste.replaceAll("<b>", "");
teste = teste.replaceAll("</b>", "");
teste = teste.replaceAll("%3F", "?");
teste = teste.replaceAll("%3D", "=");
teste = teste.replaceAll("%26", "&");
teste = teste.replaceAll("%2B", "+");
while (teste.indexOf(t1) >= 0){
resulteste = teste.substring(teste.indexOf(t1) + t1.length(),teste.indexOf(t2));
teste = teste.replaceFirst(t1, "");
teste = teste.replaceFirst(t2, "");
System.out.println(resulteste);
resultado.println(resulteste);
}
}
resultado.close();
writer.close();
rd.close();
if (pag == 1000) {
JOptionPane.showMessageDialog(null,"Acabou a Pesquisa","Atenção",
JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
System.out.println ("Scaniando.... "+ pag);
ScanAllTheWeb.Conecta(pag + 10);
} catch (UnknownHostException ioe) {
System.out.println("Falha ao conectar no servidor... Verifique sua conexao!!! ");
JOptionPane.showMessageDialog(null, "Falha na conexão com o servidor. Você pode estar desconectado ou o servidor pode estar fora do ar.", "Atenção",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (ArrayIndexOutOfBoundsException ioe) {
System.out.println("ArrayIndexOutOfBoundsException: " + ioe);
JOptionPane.showMessageDialog(null, "Operação Ilegal... Entre em contato com o suporte..", "Contate o Suporte",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (IndexOutOfBoundsException e ) {
ScanAllTheWeb.Conecta(pag + 10);
} catch (ConnectException ioe) {
System.out.println("Connection timed out: Conexão congestionada!!");
JOptionPane.showMessageDialog(null, "Conexão congestionada. Time out", "ERRO",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (SocketException e) {
System.out.println("SCAN INTERRONPIDO... VERIFIQUE SUA CONEXAO.");
JOptionPane.showMessageDialog(null, "Falha na sua conexão com a internet. Reinicie o aplicativo.", "Atenção",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (OutOfMemoryError e) {
System.out.println("SCAN TERMINADO... VERIFIQUE O RESULTADO...");
JOptionPane.showMessageDialog(null, "Scan Finalizado!!! OutOfMemory", "Compre um PC Novo ou mais memória",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (NullPointerException e) {
System.out.println("NullPointerException: " + e);
JOptionPane.showMessageDialog(null, "Operação Ilegal... Entre em contato com o suporte..", "Contate o Suporte",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
} catch (IOException ioe) {
System.out.println("IOException: " + ioe);
JOptionPane.showMessageDialog(null, "Erro Informe a o Criador do programa o erro encontrado para que ele seja corrigido", "ERRO",
JOptionPane.WARNING_MESSAGE);
System.exit( 0 );
}
}
}