Secondo la fonte HTML del http://google.com il pulsante "Mi sento fortunato" ha un nome di btnI
:
<input value="I'm Feeling Lucky" name="btnI" type="submit" onclick="..." />
Così, semplicemente aggiungendo il parametro btnI
alla stringa di query dovrebbe fare (il valore non ha importanza):
http://www.google.com/search?hl=en&btnI=1&q=your+search+term
Quindi, questa Jsoup dovrebbe fare:
String url = "http://www.google.com/search?hl=en&btnI=1&q=balusc";
Document document = Jsoup.connect(url).get();
System.out.println(document.title());
Tuttavia, questo ha dato un errore di 403 (Forbidden).
Exception in thread "main" java.io.IOException: 403 error loading URL http://www.google.com/search?hl=en&btnI=1&q=balusc
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:387)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132)
at test.Test.main(Test.java:17)
Forse Google stava annusando l'agente utente e scoprendo che si trattava di Java. Così, ho cambiato:
String url = "http://www.google.com/search?hl=en&btnI=1&q=balusc";
Document document = Jsoup.connect(url).userAgent("Mozilla").get();
System.out.println(document.title());
Questo produce (come previsto):
Il Codice BalusC
Il 403 è comunque un'indicazione che Google non è necessariamente felice con i bot come quello. È possibile ottenere (temporaneamente) l'IP-banned quando lo fai troppo spesso.
Intendi JSONP? L'API di ricerca di Google è http://code.google.com/apis/customsearch/v1/overview.html – ceejayoz
@Ceejayoz: posiziona il mouse sopra il tag '[jsoup]' sotto la domanda fino a quando non viene visualizzata una popbox, quindi fai clic su di essa * info * link per saperne di più. – BalusC
@BalusC Direi che è stata una richiesta abbastanza equa di chiarimenti, considerando il contenuto della domanda e il JSOUP a una lettera maiuscola. – ceejayoz