Google Search API

7 respostas
evertonsilvagomesjav

Pessoal bom dia :D]

To pesquisando pra saber como usar a api do google search mas nao to conseguindo entender, alguem tem algum trecho de codigo usado ou sabe como me ajudar?
Tenho o seguinte codigo mas nao sei como utilizar...

public static void main(String[] args) throws IOException, JSONException {
		
		String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
	    String search = "Buenos";
	    String charset = "UTF-8";
		
		URL url = new URL( google + URLEncoder.encode(search, charset));
		URLConnection connection = url.openConnection();
		connection.addRequestProperty("Referer","www.clickon.com.br");

		String line;
		StringBuilder builder = new StringBuilder();
		BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
		while((line = reader.readLine()) != null) {
		 builder.append(line);
		}

			JSONObject json = new JSONObject(builder.toString());
			// now have some fun with the results...
			System.out.println(json);
		
		
	}

A ideia era pesquisar sobre Buenos dentro do site do clickon, alguem me ajuda?

7 Respostas

evertonsilvagomesjav

Alguem me ajuda?

Alexandre_Saudate

Opa,

Eu conseguí fazer essa busca usando esse código:

String busca = URLEncoder.encode("site:www.clickon.com.br Buenos",
            "UTF-8");
      String searchString = new StringBuilder(
            "/ajax/services/search/web?v=1.0&q=%22").append(busca)
            .append("%22").toString();

      GetMethod getMethod = new GetMethod(searchString);
      HttpState httpState = new HttpState();
      HttpConnection httpConnection = new HttpConnection("ajax.googleapis.com",
            80);
      httpConnection.open();
      getMethod.setFollowRedirects(true);
      int result = getMethod.execute(httpState, httpConnection);

      if (result == 200) {
         List<URL> responseList = new ArrayList<>();
         JSONObject jsonObject = JSONObject.fromObject(getMethod
               .getResponseBodyAsString());
         JSONArray results = jsonObject.getJSONObject("responseData")
               .getJSONArray("results");
         for (int i = 0; i < results.size(); i++) {
            String urlCrua = results.getJSONObject(i).getString("unescapedUrl");
            URL url = new URL(urlCrua);
            responseList.add(url);
         }

         for (URL url : responseList) {
            System.out.println(url);
         }

      }

Usei commons http e a biblioteca de JSON que provavelmente é a que você já tem no seu código. Nota: eu não sei se esse código está certo, eu usei da maneira como eu usaria no site do Google, mesmo (com site:<espaço>). Além disso, essa busca sempre retorna só quatro resultados - se você quiser mais, tem que dar uma pesquisada de como retornar a mais.

[]'s

evertonsilvagomesjav

Alexandre obrigado por me ajudar, consegui buscar no clickon.

Aproveitando sua ajuda como faço pra buscar o conteudo do site no json? Estou usando o “content” mas veja so o que ele esta me retornando

<b>Buenos</b> Aires com preço imbatível: aéreo + 4 dias e 3 noites no Hotel   Promenade ou similar, por inacreditáveis 10 x de R$69,90. Saídas de São Paulo   e Porto <b>...</b>

Queria pegar a informação completa tem como?

Alexandre_Saudate

Que eu saiba, não tem como. Essa descrição é a que a página do próprio Google traz, como um preview da busca. Se você quer o conteúdo completo, porque não faz, na sequencia, a carga da página completa diretamente nela?

evertonsilvagomesjav

Como faria isso Alexandre?

Alexandre_Saudate

Como faria isso Alexandre?

Usando o próprio commons-http, igualzinho à requisição da API do Google (ou seja, igual ao código que eu te mandei, acima).

[]'s

evertonsilvagomesjav

Como faria isso Alexandre?

Usando o próprio commons-http, igualzinho à requisição da API do Google (ou seja, igual ao código que eu te mandei, acima).

[]'s

Consegui pegar o conteudo todo Alexandre com o common-http hehe valeu!

Agora é so remover as tags html :smiley:

Criado 26 de outubro de 2012
Ultima resposta 29 de out. de 2012
Respostas 7
Participantes 2