Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 32261|Відповідь: 11

[JavaSE] Краулер, щойно написаний на Java, тепер має можливість завантажувати лише зображення (глибина 1), і продовжиться...

[Копіювати посилання]
Опубліковано 03.06.2015 02:38:12 | | | |
Як випливає з назви

crawler.rar (62.53 KB, Кількість завантажень: 5, Ціна продажу: 2 Grain MB)




Попередній:Ви знаєте, які веб-контейнери asp.net маєте? Окрім IIS
Наступний:Дедуплювати дані та повернути колекцію
Опубліковано 03.06.2015 21:05:36 |
Проста реалізація, яка не залежить від інших пакетів

  1. package test;

  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;

  9. import javax.imageio.ImageIO;

  10. public class Test {
  11.         public static void main(String[] args) {
  12.                 String web="http://www.itsvse.com/";
  13.                 try {
  14.                         URL url=new URL(web);
  15.                         InputStreamReader reader=new InputStreamReader(url.openStream());
  16.                        
  17.                         StringBuilder builder=new StringBuilder();
  18.                         char[] buff=new char[1024];
  19.                         int n;
  20.                         while((n=reader.read(buff))!=-1){
  21.                                 builder.append(buff,0,n);
  22.                         }
  23.                        
  24.                         Pattern pattern=Pattern.compile("<img.*?src="(.*?)(gif|png|jpg)"");
  25.                        
  26.                         Matcher m=pattern.matcher(builder);
  27.                         while (m.find()) {
  28.                                 String u=m.group(1)+m.group(2);
  29.                                 System.out.println("dowing.."+u);
  30.                                 URL img=null;
  31.                                 if(u.startsWith("http")){
  32.                                         img=new URL(u);
  33.                                 }else{
  34.                                         img=new URL(url,u);
  35.                                 }
  36.                                 ImageIO.write(ImageIO.read(img), m.group(2), new File("D:/img/"+System.currentTimeMillis()+"."+m.group(2)));
  37.                                
  38.                         }
  39.                        
  40.                 } catch (MalformedURLException e) {
  41.                         // TODO Auto-generated catch block
  42.                         e.printStackTrace();
  43.                 } catch (IOException e) {
  44.                         // TODO Auto-generated catch block
  45.                         e.printStackTrace();
  46.                 }
  47.         }
  48. }
Копія коду
Опубліковано 04.06.2015 19:19:48 |
Delver_Si Опубліковано 2015-6-3 23:57
Ваша початкова ефективність розробки коду занадто низька, поганий відгук

Я не хотів нічого казати, але ви сказали, що розвиток неефективний。。。。。

Програма вимагає якості та продуктивності коду, і врешті-решт має мало функцій, низьку здатність до розширення та низьку продуктивність


Запускайте 10 разів поспіль, ігноруйте затримку мережі щоразу, ігноруйте локальні збереження і обчислюйте лише час для розбору html-документів — ваша програма далеко не так.
Також у вашому коді є помилки, тому я нічого не скажу

Опубліковано 03.06.2015 13:00:52 |
Delver_Si Опубліковано 2015-6-3 12:57
Як проходить навчання?

Я не встановлював eclipse, дивився на нього в блокнот, спочатку взяв HTML-код веб-сторінки, потім отримав значення після src і зберіг   

Я не знаю, чи це правильно  
Опубліковано 03.06.2015 07:49:23 |
Чи можна отримати зображення у форматі PNG?
 Орендодавець| Опубліковано 03.06.2015 10:17:34 |
Літальний ніж, що летить у полі, опубліковано 2015-6-3 07:49
Чи можна отримати зображення у форматі PNG?

Так, я ще не оцінював суфікс, всі вони збережені як jpg, насправді png-зображення можна відкрити суфіксом jpg, і я покращу суфікс
Опубліковано 03.06.2015 12:52:13 |
Дозволь мені вивчити дослідження
 Орендодавець| Опубліковано 03.06.2015 12:57:13 |
Small slag Опубліковано 2015-6-3 12:52
Дозволь мені вивчити дослідження

Як проходить навчання?
 Орендодавець| Опубліковано 03.06.2015 13:05:27 |
Сяо Чжажа Опубліковано 2015-6-3 13:00
Я не встановлював eclipse і дивився його в блокнот, спочатку взяв html-код веб-сторінки, потім отримав значення після src, а потім зберіг приблизне ...

Це правда
Опубліковано 03.06.2015 21:12:09 |
microxdd опубліковано 2015-6-3 21:05
Проста реалізація, яка не залежить від інших пакетів

Ось цей ритм змушує мене встановити myeclipse!
 Орендодавець| Опубліковано 03.06.2015 23:57:27 |
microxdd опубліковано 2015-6-3 21:05
Проста реалізація, яка не залежить від інших пакетів

Ваша початкова ефективність розробки коду занадто низька, поганий відгук
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com