기본적인 Django tests.py 파일 Django에서 앱을 만들면 앱 폴더가 생기고 그 안에 테스트 코드를 작성할 수 있는 tests.py 파일이 포함되어 있다. 그래서 해당 파일에 테스트 코드를 작성하고 실행할 때 python manage.py test 코드만 치면, 장고가 알아서 모든 test 파일 위치를 찾아내 실행시켜준다. python manage.py test 그러나 이번 프로젝트를 하며 앱이 여러개이기도, 테스트 코드를 기능별로 파일로 나눠 작성하고 싶었기에 tests 폴더를 만들기로 결정했다. Tests 폴더 만들기 app 단위로 개발하고 테스트 코드를 돌릴 것이기에, app 폴더 안에 tests 폴더를 만들었다. 이때 test가 아닌 tests 로 꼭 이름을 설정한다. 그런 다음 아래..
#️⃣ Project 및 개발일지
Django는 파이썬 로깅 라이브러리 logging을 이용하여 로깅할 수 있다. 로깅을 사용하려면 settings.py에 개별 설정을 해주면 된다. settings.py에 로깅 설정 추가 settings.py에 아래 로그 설정 코드를 넣어준다. LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', }, 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, 'formatters': { 'django.server': { '()': '..
beautifulsoup 특징 beautifulsoup 으로 html 원소가 안 가져왔다. 툴 특성상 동적 페이지의 원소는 못 가져오기에, 해당 페이지가 정적 페이지인지 확실히 알아보려고 한다. 정적 페이지 판단법 해당 페이지로 가서 f12 > 설정 버튼 > Debugger의 'disable Javascrip' 체크하기 설정하고 새로고침 누르면 정적인 부분만 보여 element가 안 보이는 것을 확인할 수 있다. 해결을 위해 동적 웹페이지도 스크랩할 수 있는 selenium을 사용해야겠다.
처음에 ec2와 s3를 돌리던 aws 계정이 프리티어 한도를 거의 넘어갈뻔하여, 계정을 새로 파서 다시 환경 세팅을 했다. 환경 세팅을 다 마친 후 파이썬 스크립트를 nohup으로 백그라운드 키고 창을 닫으니 아래와 같은 오류가 발생했다. nohup python3 main.py & # 오류 target frame detached (failed to check if window was closed: disconnected: Unable to receive message from renderer) 처음 ec2에서는 안 떴는데 이상해서 구글링 해보니, 크롬 드라이버 버전 문제라는 stackoverflow를 봤는데 내 상황과 달랐다. 만능 ChatGPT에게 물어보니 이유를 빠르게 알아챌 수 있었다. 읽고 보니,..
보호되어 있는 글입니다.
로컬 환경(Windows)에서 만든 Python 기반의 크롤러 프로젝트를 Docker image로 만들어 이를 EC2에서 실행하고자 한다. 원래는 github 프로젝트를 clone하여 프로젝트를 가져와 이를 실행할까 생각했는데, (1) 현재 프로젝트가 100% 완성되지 않아서 수정으로 여러번 배포가 될 것이기도 하고, (2) 크롤링을 위해서 환경 구축하는데 시간을 줄이고자 docker image화 하여 배포하는 것으로 선택하였다. 로컬에서의 작업 프로젝트 환경 구성은 다음과 같다. 주요 정보들은 config 폴더에, 실행 결과는 result 와 prev_result 폴더에, 로깅으로 기록되는 로그 파일은 logs 폴더에, 그리고 나머지 .py 파일은 클래스 및 test 코드 이다. 1. requremen..