2011-10-28 30 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--; 
     } 
} 

然后连接到下一个网站,然后重复此过程以了解您希望从哪些网站获取内容。

希望这会有所帮助。