使用Jsoup从站点抓取选定数量的图像

时间:2011-10-28 02:07:58

标签: image jsoup extract

我需要来自3个不同站点的前5个jpg类型的图像。目前我正在使用:

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

从单个站点获取jpgs并将其保存到ArrayList中,然后将它们添加到JPanel中。这意味着我只能使用一个网站,但我希望从3个(或更多)网站获得混合的图像结果。

使用.first然后编写代码来忽略之前抓取的元素将是一个选项,但不是很干净。

任何建议都将不胜感激。

由于

1 个答案:

答案 0 :(得分: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--;
      }
}

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

希望这有帮助。