2017-12-20 4 views
0

Ich versuche, Links in Paginierung von GitHub-Repositorys zu verschrotten Ich habe sie getrennt geschabt, aber was ich jetzt will, ist es mit einer Schleife zu optimieren. Irgendeine Idee, wie kann ich es tun? hier ist der CodeScraping mehrere Seiten mit jsoup

ComitUrl= "http://github.com/apple/turicreate/commits/master"; 

Document document2 = Jsoup.connect(ComitUrl).get(); 

Element pagination = document2.select("div.pagination a").get(0); 
String Url1 = pagination.attr("href"); 
System.out.println("pagination-link1 = " + Url1); 


Document document3 = Jsoup.connect(Url1).get(); 
Element pagination2 = document3.select("div.pagination a").get(1); 
String Url2 = pagination2.attr("href"); 

System.out.println("pagination-link2 = " + Url2); 
Document document4 = Jsoup.connect(Url2).get(); 

Element check = document4.select("span.disabled").first(); 

if (check.text().equals("Older")) { 
    System.out.println("No pagination link more"); 
} 
else { Element pagination3 = document4.select("div.pagination a").get(1); 
     String Url3 = pagination3.attr("href"); 
     System.out.println("pagination-link3 = " + Url3); 

} 
+0

Hat Ihr Problem gelöst ist? sonst werde ich dir helfen. –

Antwort

2

etwas Versuchen Sie, wie unten angegeben:

public static void main(String[] args) throws IOException{ 
    String url = "http://github.com/apple/turicreate/commits/master"; 
    //get first link 
    String link = Jsoup.connect(url).get().select("div.pagination a").get(0).attr("href"); 
    //an int just to count up links 
    int i = 1; 
    System.out.println("pagination-link_"+ i + "\t" + link); 
    //parse next page using link 
    //check if the div on next page has more than one link in it 
    while(Jsoup.connect(link).get().select("div.pagination a").size() >1){ 
     link = Jsoup.connect(link).get().select("div.pagination a").get(1).attr("href"); 
     System.out.println("pagination-link_"+ (++i) +"\t" + link); 
    } 
} 
+0

danke ich habe es schon ausgemacht btw noch Daumen hoch :) – mashal