본문 바로가기

BLOG/웹크롤링

[웹크롤링] 크롤링 데이터 저장 - 중복되지 않는 폴더 생성 방법 (현재 날짜 / 시간 사용)

 

대량의 이미지를 크롤링하고 저장하는 경우, 중간에 다시 시작해버리면 덮어쓰기가 돼버려서 이전에 저장했던 이미지가 사라질 수 있는데요, 이러한 경우 어떻게 해야 할까요? 다시 시작할 때마다 폴더의 이름을 바꾸기엔 비효율적일 수 있습니다.

 

따라서 이에 대한 해결책은 바로 폴더명을 현재 날짜, 시간이 들어가게 만들면 되는데요, 이러한 이름으로 폴더를 만들게 되면 절대 폴더가 중복되지 않습니다. 한편, 현재 시간을 측정하기 위해 time 라이브러리를 사용해야 하는데요, 아래 코드를 보면서 현재 날짜, 시간이 들어간 폴더 생성 방법에 대해 알아보도록 하겠습니다.

 

 

먼저, 전체 코드를 보도록 하겠습니다.

 

import time 
basic_dir = "c:\\test\\"  #저장할 기본경로

n = time.localtime() #현재시간
s = '%04d-%02d-%02d-%02d-%02d-%02d' % (n.tm_year, n.tm_mon, n.tm_mday, n.tm_hour, n.tm_min, n.tm_sec)

new_dir = basic_dir + s + '-' + '쇼핑몰' + '식품'

 

import time

먼저, time 라이브러리를 import 해줍니다.

  
basic_dir = "c:\\test\\"  

그리고나서, basic_dir 라는 변수에 저장할 기본 파일 경로를 입력해줍니다.

n = time.localtime()

폴더이름에 넣을 현재시간을 측정해서 n이라는 변수에 저장해줍니다.

 

s = '%04d-%02d-%02d-%02d-%02d-%02d' % (n.tm_year, n.tm_mon, n.tm_mday, n.tm_hour, n.tm_min, n.tm_sec)

이 코드는, 위에서 현재시간을 저장한 변수 n을 사용해서 현재 년도, 월, 일, 시간, 분, 초를 문자로 나타내는 코드입니다.

예를 들자면, s에 대한 값은 다음과 같이 나옵니다.

 

print(s)

# output : 
2021-03-19-11-19-07

 


new_dir = basic_dir + s + '-' + '쇼핑몰' + '식품'

이제 기본 경로 + 현재시간 + 세부 항목 이름을 결합하여 폴더의 이름을 만들어줍니다.

new_dir 변수를 출력하면 c:\test\2021-03-19-11-19-07-쇼핑몰식품 이 출력되는 것을 확인할 수 있습니다.

 

이제 os 라이브러리의 mkdir() 함수로 폴더를 생성할 때 new_dir 를 인자로 넣어주면 되는데요, 다음과 같이 코드를 입력하면 됩니다.

 

os.mkdir(new_dir)

 

 

이렇게 중복되지 않은 폴더를 생성하는 방법에 대해 살펴보았는데요, 대량의 이미지를 저장할 때 이 방법을 적절히 잘 사용하시기 바랍니다.