Получение выбранного количества изображений с сайта с помощью Jsoup - PullRequest
0 голосов
/ 28 октября 2011

Мне требуются первые 5 изображений типа jpg с 3 разных сайтов. В настоящее время я использую:

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

Чтобы получить jpgs с одного сайта и сохранить их в ArrayList, а затем добавить их в JPanel. Это означает, что я могу использовать только один сайт, однако я хотел бы получить смешанные результаты изображений с 3 (или более) сайтов.

Использование .first, а затем написание кода для игнорирования ранее захваченных элементов было бы одним вариантом, но не очень чистым.

Любые предложения будут с благодарностью.

Спасибо

1 Ответ

1 голос
/ 27 ноября 2011

Вот возможное решение, оно просто повлечет за собой добавление сайтов, с которых вы хотите получать контент, в 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--;
      }
}

Затем подключитесь к следующему сайту и повторите этот процесс для любого количества сайтов, с которых вы хотите получать контент.

Надеюсьэто помогает.

...