연구용 이미지 DB를 수집 중인데,


특정 사이트의 공개된 DB에 실제 이미지 파일 대신, URL만 적혀있는 경우가 있었다.


MATLAB으로 간편하게, URL 리스트를 입력받아 로컬에 저장하면, 손쉽게 DB를 모을 수 있다.


여기서는 urlread , urlwrite, fileparts 함수 등을 이용하였다.



url_list : url이 담긴 리스트

N : url 리스트의 길이






 for i=1:N

       url = url_list(i);         

       X = [ '[',num2str(i) ,'/', num2str(N), ']',':', url];

       disp(X);        

     

       [path, name, ext] = fileparts(url);

       name = [name ext];

       [S , STATUS] = urlread(url);

       if STATUS == 1

        urlwrite(url,name);

       end

   end





모든 url에 실제 파일이 존재하면 urlread는 사용하지 않아도 무방하지만, 


url 리스트에 있는 일부 url에 실제 파일이 존재하지 않을 경우 urlwrite에서 오류가 나서 


loop를 빠져나오기 때문에,


파일의 실제 존재 여부를 확인하기 위해서 urlread로 STATUS를 알아내고,


STATUS가 1인 경우에만, 즉 파일이 존재할 경우에만 파일로 저장하였다.


fileparts 함수는 url 에서 파일이름을 추출할때 사용하였다.


예를 들어 아래 URL에서 파일이름만 따올 경우 

http://assets0.chictopia.com/photos/Amber_Randell/6454092040/geometric-print-motel-rocks-dress-striped-zara-blazer-charlotte-russe-purse_400.jpg


파일이름을 fileparts를 이용하여

geometric-print-motel-rocks-dress-striped-zara-blazer-charlotte-russe-purse_400.jpg 로 지정하여 저장한다..



Posted by 우주여행가
,