Back-end/Python(3)
-
[Python] 동적 웹사이트를 크롤링하기: Selenium
동적 웹사이트 vs 정적 웹사이트 정적인 웹사이트는 이미 웹페이지가 만들어져 있고 이를 웹서버에서 클라이언트로 그대로 전달합니다. 따라서 속도가 빠르다는 장점이 있으나 데이터베이스랑 실시간으로 상호작용하지는 않습니다. 반면 동적인 웹사이트는 웹서버가 미리 페이지를 만들어놓는 대신, 자바스크립트가 런타임 시에 웹페이지를 만듭니다. URL의 변화가 없는데 스크롤 시 새 요소가 로딩되는 사이트가 동적 웹사이트라고 할 수 있습니다. 만약 동적 웹사이트를 정적 크롤러로 크롤링하면 아무것도 없는 요소를 반환할 가능성이 높습니다. 아직 요소가 자바스크립트에 의해 만들어지지 않았기 때문입니다. 따라서 동적 웹사이트는 동적 크롤러로 크롤링해야합니다. 반대로 정적 웹사이트를 동적 크롤러로 크롤링하는건 사용자가 일반적으로 ..
2022.10.04 -
[Python] 일정한 주기나 특정 시간에 코드 실행시키기: Apscheduler
Apscheduler 일정한 주기마다 실행되어야 하는 코드를 예약할 수 있는 Python 기반 스케쥴링 라이브러리입니다. 데몬이 아니며 앱 내부에서 실행됩니다. BlockingScheduler: 하나의 프로세스에서만 동작하며 스케쥴링 된 작업이 실행될때 다른 작업은 일시중단됩니다. BackgroundScheduler: 백그라운드에서 동작하며 스케쥴링 된 작업이 실행될때 다른 작업도 할 수 있습니다. Apscheduler 설치하기 터미널을 키고 다음을 입력합니다. pip install apscheduler Apscheduler 사용하기: BackgroundScheduler BackgroundScheduler 객체를 초기화하고 그 객체의 add_job()를 실행해서 작업을 예약합나다. 1. 특정 시간에 주기..
2022.08.29 -
[Python] JSON 객체와 Dictionary/List/Tuple를 변환하기: 인코딩 및 디코딩
JSON 웹서버와 클라이언트가 데이터를 주고받을 때 자주 사용하는 형식입니다. Key, Value 쌍의 형태로 저장됩니다. JSON에서 Dictionary/List/Tuple로 변환하기 - json.loads() 클라이언트에서 보낸 JSON을 Django 웹서버에서 받는 상황입니다. import json data = request.GET.get('words') print(type(data)) jsonObjectWords = json.loads(data) print(type(jsonObjectWords)) JSON을 받아와서 바로 출력해버리면 string 타입으로 인식됩니다. json.loads()를 실행해야 dictionary나 list, tuple 타입으로 인식됩니다. Dictionary/List/Tu..
2022.08.19