Welcome! 🙋‍♂️ View more

Engineering 💻/Python 3

[Python] logging 사용법과 클래스화

Python에는 print라는 기능이 있다. 보통은 이 기능을 통해서 output을 확인한다. 그러나 print로는 output을 확인할 수 없는 경우가 있다. 필자는 airflow의 에러 로그가 print로는 확인되지 않아 logging 모듈을 활용했다. logging에서는 print보다 좀 더 다양한 기능을 제공하니, 한 번 알아보도록 하자! 😀 1. logging 모듈 먼저 logging 모듈에 대해서 알아보자 HTML 삽입 미리보기할 수 없는 소스 1. log 출력 기준 log가 출력되는 기준을 설정합니다. 출력 기준을 ERROR로 두게 된다면 그 아래 수준인 DEBUG/INFO/WARNING을 출력되지 않는다. 2. log 출력 형식 asctime: 일자를 나타냅니다. levelname: 출력 ..

[Python] 참조한 모듈이 다른 모듈을 참조할 수 없는 경우 해결 (다른 모듈 참조하기)

파이썬으로 프로그램을 짤 때, 다른 모듈의 클래스나 함수를 사용하고 싶을 때가 있을 것이다. 필자 역시 그러했고, 그렇게 프로그램을 제작하고 있었다. 그러나 프로젝트의 구조를 바꾸고 나니, 제대로 동작하지 않는 경우가 있었다. 아래 경우를 살펴보자. 😫. 문제 상황 여기서 file1.py가 file2.py 모듈을 사용하기 위해서는 어떻게 해야할까? 여기에 대한 해답은 많은 곳에서 나와있다. 아래와 같이 해결하면 된다. # file2.py class Class2: def __init__(self): print('This is class in Class2') # file1.py # 상위 폴더를 참조할 수 있도록 설정한다. import sys, os sys.path.append(os.path.dirname(o..

[Python] 크롤링 방법과 비교 (requests, BeautifulSoup, selenium)

Python에서 웹 크롤링을 하는 방법은 두 가지가 있다. requests 라이브러리로 웹 정보를 받고, BeautifulSoup로 파싱한다. selenium 라이브러리로 브라우저를 열어 웹 정보를 받는다. 보통 웹 컨트롤이 필요할 경우(클릭)에는 selenium을 활용하고, 그렇지 않다면 requests 방법을 이용하는 것이 일반적이다. 왜냐하면 selenium은 웹 브라우저를 여는 과정에서 많은 시간이 소요되기 때문에 비교적 속도가 빠른 requests가 좀 더 유리하기 때문이다. 🤔 궁금한 것 그렇다면.... 만약 웹 컨트롤이 필요해서 selenium을 통해 웹 브라우저를 열어놓은 상태에서 웹 정보를 어떻게 가져오는 게 더 빠를까? 이번에는 그것을 알아볼 것이다. 👀 실험 준비 이번에 크롤링할 대상..