Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 32261|Odpowiedź: 11

[JavaSE] Crawler właśnie napisany w Javie, teraz ma możliwość pobierania tylko obrazów (głębia 1) i będzie kontynuować...

[Skopiuj link]
Opublikowano 03.06.2015 02:38:12 | | | |
Jak sugeruje tytuł

crawler.rar (62.53 KB, Liczba pobranych plików: 5, Cena sprzedaży: 2 Zbożowy MB)




Poprzedni:Czy wiesz, jakie asp.net mieć web containers? Z wyjątkiem IIS
Następny:Deduplikuj dane i zwróć kolekcję
Opublikowano 03.06.2015 21:05:36 |
Prosta implementacja, która nie zależy od innych pakietów

  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. }
Skopiuj kod
Opublikowano 04.06.2015 19:19:48 |
Delver_Si Opublikowano 3.06.2015 o 23:57
Wydajność twojego oryginalnego kodu jest zbyt niska, zła recenzja

Nie chciałem nic mówić, ale powiedziałeś, że rozwój jest nieefektywny。。。。。

Program wymaga jakości i wydajności kodu, a ostatecznie ma niewiele funkcji, słabe możliwości rozbudowy i słabą wydajność


Uruchamiaj 10 razy z rzędu, ignoruj opóźnienia sieciowe za każdym razem, ignoruj lokalne zapisy i obliczaj tylko czas na parsowanie dokumentów html, twój program jest daleki od tego.
Poza tym są błędy w twoim kodzie, więc nie będę nic mówić

Opublikowano 03.06.2015 13:00:52 |

Nie zainstalowałem eclipse i nie spojrzałem na to w notatniku, najpierw pobrałem kod źródłowy HTML strony, potem dostałem wartość po src, a potem ją zapisałem   

Nie wiem, czy to właściwe  
Opublikowano 03.06.2015 07:49:23 |
Czy można pobierać obrazy w formacie PNG?
 Ziemianin| Opublikowano 03.06.2015 10:17:34 |

Tak, jeszcze nie oceniłem sufiksu, wszystkie są zapisane jako jpg, w rzeczywistości obraz png można otworzyć z sufiksem jpg, a ja poprawię ten sufiks
Opublikowano 03.06.2015 12:52:13 |
Pozwól mi przeanalizować badania
 Ziemianin| Opublikowano 03.06.2015 12:57:13 |
Small slag Opublikowano 3.06.2015 o 12:52
Pozwól mi przeanalizować badania

Jak wygląda badanie?
 Ziemianin| Opublikowano 03.06.2015 13:05:27 |
Xiao Zhazha Opublikowano 3.06.2015 o 13:00
Nie instalowałem eclipse i nie sprawdzałem go w notatniku, najpierw pobierałem kod źródłowy html strony, potem pobierałem wartość po src, a potem zapisywałem przybliżone ...

To prawda
Opublikowano 03.06.2015 21:12:09 |
microxdd opublikowano 3.06.2015, 21:05
Prosta implementacja, która nie zależy od innych pakietów

To jest rytm, który zmusza mnie do zainstalowania myeclipse!
 Ziemianin| Opublikowano 03.06.2015 23:57:27 |
microxdd opublikowano 3.06.2015, 21:05
Prosta implementacja, która nie zależy od innych pakietów

Wydajność twojego oryginalnego kodu jest zbyt niska, zła recenzja
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com