//我尝试创建一个函数来捕获搜索某些字符串的所有结果,//但我只捕获一个元素而我的for不会继续//我的搜索的所有结果。 //我的循环序列中有错误? //你有任何吸食吗?
//这是我的代码。 //对不起我的代码是西班牙语。
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);
}
}
答案 0 :(得分: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);
}
}