time은 파이썬에 내장된 기본 모듈이다. 별도의 패키지를 설치하지 않고 사용할 수 있다. 코드는 컴퓨터가 실행하기 때문에, 반복작업을 굉장히 빨리 처리할 수 있다. 그래서 이러한 작업을 처리할 때 time모듈을 이용해야 하는 경우가 많다. 오늘은 time모듈을 활용하는 방법에 대해서 알아보도록 하겠다.
1. 웹크롤링할 때
웹크롤링을 하면 아래와 같이 for문을 이용해서, 다수의 웹페이지 정보를 수집할 때가 많다. 이 때 대상 웹서버가 다르면 모르겠지만, 하나라면 비정상적인 접근으로 판단하고 차단한다. ( 필자도 예전에 경마 데이터를 수집할 때 차단된 경험이 있다. )
for i in range(0,100):
웹크롤링 코드
그래서, time모듈을 이용해서 최대한(?) 사람이 하는 것처럼 시간 간격을 두고 웹페이지 데이터를 수집한다. 이 때 시간간격이 동일해도, 봇으로 판단하고 차단할 수 있다. 그래서 random모듈과 같이 이용하여, 랜덤하게 시간 간격을 두고 데이터를 수집한다.
import time
import random
for i in range(0,100):
웹크롤링 코드
time.sleep(random.randint(3, 7))
sleep은 정해진 시간(초) 동안 실행을 일시정지 해주는 함수이다. randint함수는 입력파라미터로 들어간 숫자 중의 하나를 랜덤하게 반환해주는 함수이다. 그래서 웹크롤링 뒤의 코드는 3에서 7초 사이로 랜덤하게 일시정지하게 해 준다.
2. 시간을 측정할 때
time모듈의 time함수를 이용하면, 초단위로 시간을 출력해준다. 그래서 특정 코드나 페이지의 속도를 측정하기에 용이하다. 3초간 일시정지하고, 시간을 time함수로 구한 다음에 걸린 시간을 측정해보았다.
import time
s = time.time()
time.sleep(3)
e = time.time()
print(e-s)
[결과]
3.000624895095825
하지만, 시간을 측정할 때는 timeit 모듈을 사용하는 것이 효과적이다. timeit모듈을 사용하는 방법이 궁금하다면, 아래 포스팅을 참고하기 바란다.
( 참조: 파이썬 timeit 사용법 알아보기 )
오늘은 이렇게 time모듈에 대해서 알아보았다. sleep함수는 코딩을 하다보면, 굉장히 많이 사용하기 때문에 어느새 익숙해진다. random모듈도 같이 자주 사용하니 익혀두는 것이 좋다.
파이썬에는 이미 개발된 패키지들이 많아, 이를 활용하면 더 빠르고 효율적으로 원하는 작업들을 할 수 있다. 이런 패키지들에는 어떤 것들이 있는지 알아보았다. 자세한 내용이 궁금하다면 아래 포스팅을 참조하기 바란다.
( 참조: 파이썬 패키지 활용, 어떤 좋은 패키지들이 있을까?! )
'파이썬 > 파이썬 기초' 카테고리의 다른 글
파이썬 global 전역변수 사용방법과 사용예 알아보기! (0) | 2021.06.07 |
---|---|
파이썬 튜토리얼보다 쉽고 재미있는 파이썬 무료 기초 교육 추천! (2) | 2021.06.02 |
파이썬 timeit 사용법 알아보기 (0) | 2021.04.05 |
파이선 설치 및 코딩 공부하는 법 알아보기 (0) | 2021.03.12 |
도커 사용법-컨테이너 실행, 이미지 삭제하기 등 (0) | 2021.02.24 |