2017-11-28 22 views
0

//一部の文字列の検索結果をすべて取得するための関数を作成しようとしていますが、1つの要素とmyを捕捉するだけでは//すべての検索結果が得られません。 //ループシーケンスにエラーがありますか? //どんな眠気がありますか?JTableに検索結果を保存します

//これは私のコードです。 //申し訳ありませんが、私のコードはスペイン語です。

private void Buscar(String tema){ 
    String url = "http://www.google.com/search?q="+tema; 
    String resultado; 
    String[] resultados; 
    DefaultTableModel model = (DefaultTableModel) jT_ResultadosBusqueda.getModel(); 
    int contacampos; 
    try{ 
     URL obj = new URL(url); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
     con.setRequestMethod("GET"); 
     con.setRequestProperty("User-Agent", USER_AGENT); 
     BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream())); 
     StringBuffer response = new StringBuffer(); 
     while ((tema = in.readLine()) != null) { 
     response.append(tema); 
    } 
    in.close(); 
    resultado = response.toString(); 
    resultados = resultado.split("<a href=\"/url?q="); 
    contacampos = 1; 
    do{ 
     for (int i = 0; i < resultados.length; i++) { 
      //JOptionPane.showMessageDialog(this,i); 
      //JOptionPane.showMessageDialog(this,resultados.length); 
      int inicio = resultados[i].indexOf("\"http"); 
      //JOptionPane.showMessageDialog(this,inicio); 
      int fondo = resultados[i].indexOf("\">"); 
      //JOptionPane.showMessageDialog(this,fondo); 
      String result = resultados[i].substring(inicio + 1, fondo); 
      model.addRow(new Object[]{result,"Ejemplo1","Tema1","Asunto1","www.1.com"}); 
     } 
         contacampos = contacampos +1; 
    }while(contacampos<resultados.length);   

    }catch(HeadlessException | IOException e){ 
     JOptionPane.showMessageDialog(this,e.getMessage(),"¡Aviso!",JOptionPane.ERROR_MESSAGE); 
    } 
} 
+1

の代わりに[jsoup](https://jsoup.org)のように利用できるパース、いくつかのを見て、おそらく、車輪の再発明をしようとしている – MadProgrammer

+0

私はJSoupをチェックします。あなたのお手伝いをありがとう。 –

答えて

0

解決策は、それがJsoupでした。

これは私の実際のコードです。

private void Buscar(String tema){ 
     try { 
      // TODO add your handling code here: 
      org.jsoup.nodes.Document doc = Jsoup.connect("http://www.google.com/search?q="+tema).get(); 
      DefaultTableModel model = (DefaultTableModel) jT_ResultadosBusqueda.getModel(); 
      //doc.title() 
      Elements link = doc.select("a[href]"); 
      for (Element linkline : link) { 
       JOptionPane.showMessageDialog(this,linkline); 
       model.addRow(new Object[]{linkline.tagName(),linkline.id(),"","",""}); 
      } 
     } catch (IOException ex) { 
      Logger.getLogger(Buscador.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
関連する問題