2017-02-08 3 views
0

Ich versuche, den Code einer Website zu lesen. Aber es gibt ein Problem, wenn ich den Code dieser Website zum Beispiel erhalten möchte: "https://www.amazon.de/gp/bestsellers/pet-supplies/#2" Ich habe viel versucht, aber immer noch nur den Code https://www.amazon.de/gp/bestsellers/pet-supplies erhalten. So etwas funktioniert nicht richtig, wie ich empfangen möchte Platz 21-40 und nicht 1-20 ich eine URLConneciton und ein BufferedReader bin mit:.Ein Problem mit einer URLConnection mit Java

public String fetchPage(String urlS){  
    String s = null; 
    String qc = null; 

    try{ 
    URL url = new URL(urlS); 
    URLConnection uc = url.openConnection(); 
    uc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"); 

    BufferedReader reader = new BufferedReader(new InputStreamReader(uc.getInputStream())); 


    while((s = reader.readLine()) != null){ 
     qc += s; 
    } 
    reader.close(); 
    } catch(IOException e) {    
     e.printStackTrace(); 
     qc = "receiving qc failed"; 
    } 
    return qc; 
} 

Vielen Dank im Voraus für Ihre Mühe :)

Antwort

1

Die URL Sie holen, enthält ein achor (die # 2 am Ende) Ein Anker ist ein Client-Side-Konzept und wird ursprünglich verwendet, um zu einem bestimmten Teil der Seite zu springen.Einige Webapps (meist einzelne Seite a pps) verwenden Sie den Anker, um eine Art von Zustand zu verfolgen (z. B. welche Seite der Produkte Sie gerade ansehen).

Da der Anker ist ein Client Konzept, das reagiert Webserver (oder Ihr Browser/HTTP-Client-Bibliothek) fällt nur irgendeinen Anker als ob Sie tatsächlich https://www.amazon.de/gp/bestsellers/pet-supplies angefordert.

Fazit ist, dass Sie nie die zweite Seite bekommen werden ... Goog Glück beim Schaben Amazon obwohl;)