2012-04-12 3 views
18

Sto tentando di analizzare il dump HTML di una determinata pagina. Ho usato HTML Parser e ho anche provato JSoup per l'analisi.JSoup.connect genera errore 403 mentre apache.httpclient è in grado di recuperare il contenuto

ho trovato utili funzioni in Jsoup ma sto ottenendo 403 errore durante la chiamata Document doc = Jsoup.connect(url).get();

ho cercato HTTPClient, per ottenere il dump html ed era successo per lo stesso URL.

Perché JSoup fornisce 403 per lo stesso URL che sta dando contenuto da client http comune? Sto facendo qualcosa di sbagliato? qualche idea?

+1

prega, SHRE il link. connessione a. – vacuum

+3

controllare il collegamento http://stackoverflow.com/questions/7508813/can-jsoup-simulate-a-button-press, segnalazioni di un problema simile –

+0

Vorrei provare tcpdump o strumento simile per vedere le differenze di quali dati sono inviato da HTTP Client e cosa da JSoup. –

risposta

47

Soluzione di lavoro è la seguente (grazie ad Angelo Neuschitzer per ricordare per dirla come una soluzione):

Document doc = Jsoup.connect(url).userAgent("Mozilla").get(); 
Elements links = doc.getElementsByTag(HTML.Tag.CITE.toString); 
for (Element link : links) { 
      String linkText = link.text(); 
      System.out.println(linkText); 
} 

Quindi, userAgent fa il trucco :)

+2

+1 per quello! Funziona correttamente! Eccezionale! –