2017-06-26 31 views
0

Derzeit versuche ich, Jsoup zu verwenden, um die endgültige umgeleitete URL dieser URL zu erhalten: https://playoverwatch.com/en-us/search?q=Lolzword-1298. Es sollte zu dieser URL umleiten: https://playoverwatch.com/en-us/career/pc/us/Lolzword-1298, aber der folgende Code leitet die URL nicht um.Jsoup erhält keine endgültige umgeleitete URL

String url = "https://playoverwatch.com/en-us/search?q=Lolzword-1298"; 
org.jsoup.Connection.Response response = Jsoup.connect(url).followRedirects(true).execute(); 
System.out.println(response.url()); 

Irgendwelche Ideen?

Antwort

1

JSoups followRedirects ist für HTTP-Weiterleitungen ("Server Redirects"), und es gibt keine solche Sache mit der URL, die Sie versuchen.

Beispiel mit einer Verknüpfung URL auf Ihre eigene Frage:

String url = "https://stackoverflow.com/q/44769507"; 
Connection.Response response = Jsoup.connect(url).followRedirects(true).execute(); 
System.out.println(response.url()); 
// https://stackoverflow.com/questions/44769507/jsoup-not-obtaining-final-redirected-url 

Dies druckt eine andere URL wegen der HTTP-Umleitung finden Sie in den Header:

% curl -I 'https://stackoverflow.com/q/44769507' 
HTTP/1.1 302 Found 
Content-Type: text/html; charset=utf-8 
Location: https://stackoverflow.com/questions/44769507/jsoup-not-obtaining-final-redirected-url 
... 

Wenn ich das mit Ihrer URL versuchen , gibt es keine HTTP-Weiterleitung:

% curl -I 'https://playoverwatch.com/en-us/search?q=Lolzword-1298' 
HTTP/1.1 200 OK 
Cache-Control: public;max-age=300 
Content-Length: 104248 
Content-Type: text/html; charset=utf-8 
... 

Die "Weiterleitung" sehen Sie in Ihrem Browser, wenn Sie Laden Sie die Seite viel später, mit JavaScript (wenn Sie JavaScript auf dieser Seite deaktivieren, bleibt die Seite am ursprünglichen Speicherort), und ich glaube nicht, dass JSoup das abfangen kann.

This answer Punkte auf Selenium oder HtmlUnit als Alternativen, die in der Lage wäre, JavaScript auszuführen und Ihnen die finale URL zu erhalten.

Verwandte Themen