728x90

Python 15

[Python] Selenium을 이용한 스크린샷 저장하기

필요한 것은 아니었지만 각 사이트의 메인화면을 스크린샷으로 찍어두는 프로그램이 있었으면 하는 상황이 있었었다. 물론 결국 필요해지진 않았지만 Selenium을 이용한 스크린샷을 찍는 방법을 정리한 다면 나중에 쓸 일이 있을 것 같아 정리를 하기로 하였다. selenium으로 스크린샷을 저장하는 방법은 매우 간단하다. # driver 기본 설정 후 driver를 반환 driver = open_driver() driver.get(url) driver.save_screenshot(path) driver의 save_screenshot()을 사용하면 끝이 난다. from selenium import webdriver def open_driver(): options = webdriver.ChromeOptions()..

Python 2021.12.01

[Python] Python 반복문 개선하기

지난 포스팅에 코드 실행시간을 측정하는 방법을 찾아보게 된 이유가 어떤 Python 코드의 동작 시간이 오래 걸렸다는 이슈가 있어 찾아보게 되었다고 했었는데, 그 이슈 때문에 내가 작성했던 Python 코드도 다시 한번 보게 되었다. 물론 해당 이슈는 반복문을 돌면서 돌 때마다 요청을 보내고 응답을 기다린 뒤 응답을 처리하는 과정을 거치기 때문에 속도 문제가 발생한 것이고, 내가 작성했던 코드에서는 요청을 한 번 보내고 받아온 응답을 반복문을 돌면서 처리하기 때문에 그와 같은 문제는 발생하지 않을 것 같았다. 아직 실제 테스트를 해보지 않아서 어떤 문제가 발생할지는 모른다... 1. 기존 코드 문제는 없을 것 같았지만 내가 짠 코드에 가장 큰 문제점은 가독성이었는데 (다른 문제도 많을 것이지만 현재 내 ..

Python 2021.11.16

[Python] Python 코드 실행시간 측정하기

Python 코드 실행시간을 측정하는 방법도 Java와 크게 다르지 않다. 1. time.time() 이용하기 가장 간단한 방법이다. time.time()을 사용하여 시작 시간과 종료 시간을 저장해 그 차이를 계산하는 방법이다. start_time = time.time() # 작업 코드 end_time = time.time() print('코드 실행 시간: %20ds' % (end_time - start_time)) 단위는 초 단위이다. 파이썬에서 가장 마음에 드는 부분이 이렇게 초 단위를 사용한다는 점이다. 그런데 만약에 1초도 안 걸리는 코드의 실행시간을 측정하고 싶다면?? start_time = time.time_ns() # 작업 코드 end_time = time.time_ns() print('코드..

Python 2021.11.12

[Selenium] Selenium Waits(대기) 정리

셀레니움을 사용하다 보면 페이지 로딩 시간 또는 동적 페이지로 인해 요소가 불러와질 때까지 기다려야 하는 상황이 발생한다. 만약 요소가 없을 때 요소를 찾으려는 함수가 호출되면 ElementNotVisibleException이 발생하기 때문에 꼭 요소가 나타날 때까지 기다렸다가 진행해 주어야 한다. 사실 파이썬이나 셀레니움을 사용하는 경우가 별로 없어서 그전까지 대기가 필요하면 그냥 Python의 sleep()을 사용하였다. from time import sleep sleep(1)# 1초 대기 sleep(0.5)# 0.5초 대기 Python의 sleep 같은 경우에는 인수로 ms 단위가 아닌 초(sec) 단위의 숫자를 받기 때문에 사용하기에 매우 직관적이다. 그렇기 때문에 간단한 대기나 짧은 시간의 대기..

Python 2021.10.25

[Python3] Python3에서 교착 상태 감지하기 (hanging-threads 사용)

Python을 잘 사용하진 않지만 궁금해서 찾아보다 알게 된 내용을 정리하기로 하였다. hanging-threads이라는 모듈을 사용하면 지정된 시간마다 스택을 덤프 하고 비교하여 변화가 없으면 교착 상태라고 판단한 다음 해당 스레드의 로그를 띄워주게 된다. pip을 이용하여 우선 hanging-threads를 받아주어야 한다. 리눅스에서는 다음의 명령어로 pip install hanging-threads 윈도우에서는 다음의 명령어로 설치하면 된다. py -m pip install hanging_threads 그다음은 교착 상태를 감지하고 싶은 소스에서 from hanging_threads import start_monitoring monitoring_thread = start_monitoring(sec..

Etc/2021 2021.06.25
728x90