이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 32261|회답: 11

[자바SE] 자바로 작성된 크롤러는 이제 이미지 다운로드(깊이 1)만 가능하며, 계속 진행될 것입니다...

[링크 복사]
게시됨 2015. 6. 3. 오전 2:38:12 | | | |
제목에서 알 수 있듯이요

crawler.rar (62.53 KB, 다운로드 횟수: 5, 판매 가격: 2 그레인 MB)




이전의:asp.net 어떤 웹 컨테이너를 가지고 있는지 아시나요? IIS를 제외하고
다음:데이터를 중복 해제하고 컬렉션을 반환합니다
게시됨 2015. 6. 3. 오후 9: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. }
코드 복사
게시됨 2015. 6. 4. 오후 7:19:48 |
Delver_Si 2015-6-3 23:57에 게시됨
원래 코드 개발 효율이 너무 낮아서 나쁜 리뷰가 있어요

아무 말도 하고 싶지 않았는데, 개발이 비효율적이라고 하셨잖아요。。。。。

이 프로그램은 코드의 품질과 성능을 요구하며, 결국 기능이 적고 확장 능력과 성능이 떨어집니다


10번 연속으로 실행하고, 매번 네트워크 지연을 무시하고, 로컬 저장도 무시하며, HTML 문서 파싱 시간만 계산하세요. 당신의 프로그램은 아직 그 수준과는 거리가 멉니다.
또한, 코드에 오류가 있으니 굳이 말하지 않겠습니다

게시됨 2015. 6. 3. 오후 1:00:52 |

저는 Eclipse를 설치하지 않고 메모장에서 먼저 웹페이지의 HTML 소스 코드를 가져와서 값을 받아 저장했습니다   

이게 맞는지 모르겠어요  
게시됨 2015. 6. 3. 오전 7:49:23 |
PNG 형식의 이미지를 캡처할 수 있나요?
 집주인| 게시됨 2015. 6. 3. 오전 10:17:34 |

네, 지금은 접미사를 판단하지 않았어요. 모두 jpg 형식으로 저장되어 있고, 사실 png 이미지는 jpg 접미사로 열 수 있고, 접미사를 개선할 예정입니다
게시됨 2015. 6. 3. 오후 12:52:13 |
연구를 살펴보자고 합니다
 집주인| 게시됨 2015. 6. 3. 오후 12:57:13 |
작은 슬래그, 2015-6-3 12:52에 게시됨
연구를 살펴보자고 합니다

연구는 어떤가요?
 집주인| 게시됨 2015. 6. 3. 오후 1:05:27 |
샤오자자 2015-6-3 13:00에 게시됨
저는 Eclipse를 설치하지 않고 메모장에서 먼저 웹페이지의 html 소스 코드를 가져와서 src 값 값을 얻고, 대략적인 ...

그건 사실이에요
게시됨 2015. 6. 3. 오후 9:12:09 |
마이크로xdd가 2015-6-3 21:05에 게시했습니다
다른 패키지에 의존하지 않는 간단한 구현

이런 리듬이 저를 일식을 설치하게 만듭니다!
 집주인| 게시됨 2015. 6. 3. 오후 11:57:27 |
마이크로xdd가 2015-6-3 21:05에 게시했습니다
다른 패키지에 의존하지 않는 간단한 구현

원래 코드 개발 효율이 너무 낮아서 나쁜 리뷰가 있어요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com