2015-05-16 4 views
0

Попытка скачать все pdf-файлы на веб-сайте, и у меня плохой код. Наверное, там лучше. Anyways вот он:Загрузить все pdf-файлы на веб-сайте

try { 
     System.out.println("Download started"); 
     URL getURL = new URL("http://cs.lth.se/eda095/foerelaesningar/?no_cache=1"); 
     URL pdf; 
     URLConnection urlC = getURL.openConnection();   

     InputStream is = urlC.getInputStream(); 

     BufferedReader buffRead = new BufferedReader(new InputStreamReader(is)); 

     FileOutputStream fos = null; 

     byte[] b = new byte[1024]; 

     String line; 
     double i = 1; 
     int t = 1; 

     int length; 
     while((line = buffRead.readLine()) != null) { 

      while((length = is.read(b)) > -1) { 

       if(line.contains(".pdf")) { 

        pdf = new URL("http://fileadmin.cs.lth.se/cs/Education/EDA095/2015/lectures/" 
        + "f" + i + "-" + t + "x" + t); 


        fos = new FileOutputStream(new File("fil" + i + "-" + t + "x" + t + ".pdf")); 
        fos.write(b, 0, line.length()); 
        i += 0.5; 
        t += 1; 

        if(t > 2) { 
         t = 1; 
        } 
       } 
      } 
     } 
     is.close(); 
     System.out.println("Download finished"); 
    } catch (MalformedURLException e) { 

     e.printStackTrace(); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 

Файлы, которые я получаю, являются повреждением, НО есть лучший способ загрузить файлы PDF? Потому что на сайте некоторые из файлов: f1-1x1, f1-2x2, f2-1x1 .. Но что, если файлы были donald.pdf stack.pdf и т. Д.

Так что вопрос будет, как мне сделать мой код лучше для загрузки всех файлов PDF?

ответ

2

В принципе вы спрашиваете: «Как я могу правильно разобрать HTML, чтобы идентифицировать все ссылки для скачивания, которые указывают на файлы PDF».

Все остальное (например, то, что у вас есть сейчас, чтобы предвидеть, как будут выглядеть/должны быть/должны быть ссылки) будет постоянным источником скорби; потому что любое обновление вашего веб-сайта; или попытка запустить ваш код на другом веб-сайте, скорее всего, не удастся. И это потому, что HTML является сложным и имеет так много вкусов, что вы просто должны забыть о «простых» решениях для анализа содержимого HTML.

В этом смысле: узнайте, как использовать парсер HTML; первой начальной точкой может быть Which HTML Parser is the best?

+0

Вы абсолютно правы. В этом курсе я должен научиться загружать ссылки, которые указывают на файлы PDF без HTML-анализатора. EDIT: Я добровольно беру этот курс в свободное время. – bCM

+0

Я предполагаю, что ваша цель обучения должна быть придумана с различными стратегиями о том, как это сделать ** **. Что вы узнали от других людей, изучающих пространство опций для вас? – GhostCat

+0

С одной стороны, я не могу возражать против этого, потому что ур прав. И другая часть - это то, что я делаю курс проекта с несколькими одноклассниками, и я хотел реализовать многопользовательский вариант. В этом случае мне пришлось изучать сетевое программирование, поэтому время короткое и заканчивается. – bCM

Смежные вопросы