2011-10-28 27 views
0

我需要來自3個不同網站的前5張jpg類型圖片。目前我使用:從Jsoup網站抓取選定數量的圖片

Document doc = Jsoup.connect(URL).timeout(10*1000).get(); 
Elements jpgs = doc.select("img[src$=.jpg]"); 

抓住從單個站點的JPG文件,並將它們保存到一個ArrayList,然後將它們添加到JPanel。這意味着我只能使用一個網站,但我想從3(或更多)網站的圖像混合的結果。

使用.first然後編寫代碼來忽略以前抓取的元素將是一個選項,但不是很乾淨。

任何建議將不勝感激。

感謝

回答

1

這裏有一個可能的解決方案,它只是意味着將你想從一個ArrayList中獲取內容的網站。

連接到一個網站,追加你想要的圖像的數量ArrayList images,然後爲每個你想要獲取內容的網站重複這個過程。

ArrayList<String> sites = new ArrayList<String>(); 
ArrayList<String> images = new ArrayList<String>(); 
sites.add("http://google.com); 
sites.add("http://facebook.com"); 
sites.add("http://stackoverflow.com"); 
int numSites = sites.size(); 

//number of images you want from each site 
int maxNum = 5; 

for (int i = 0; i < numSites; i++) { 
     //iterate through images and save first 5 or however many you choose 
     for (Elements jpg : jpgs) { 
     while (maxNum > 0) { 
     images.add(jpg.attr("abs:src")); 
     maxNum--; 
     } 
} 

然後連接到下一個網站,然後重複此過程以瞭解您希望從哪些網站獲取內容。

希望這會有所幫助。