Python 7

Django 시작하기

Django란 Python에서 제공하는 Web Framework 중 하나로 Python 언어를 통해 쉽게 웹을 구성하고 배포할 수 있는 환경을 제공한다. 비슷한 Framework으로 Flask, FastApi가 있으며, 오늘은 Django 구성에 대한 내용을 포스팅 해보겠습니다. 환경 구성 기본적으로 Django 설치 시 아래와 같은 구성으로 구성 됩니다. 서버 #1: Django 서버 + Django DB(Default Sqllite3) 저는 실제 활용 테스트를 위해 아래와 같이 구성하였습니다. 서버 #1: Django 서버 (Windows 2022) 서버 #2: Django DB 서버 (Ubuntu 22.04) 간편하게, 사용하고 있는 노트북의 Windows 환경에서 구성하였으며, 로컬 PC에는 Py..

Python/Django 2023.08.13

Text Compression

Python 기본 함수들을 이용하여 "aabbccc" 형태의 String을 a2b2c3 형태로 Compression 하는 알고리즘에 대해서 알아보고 코드를 직접 작성하여 데이터 출력을 확인해보도록 하겠습니다. 1. 알고리즘 정리 - 문자열로된 데이터를 입력 받습니다. - 문자열을 배열 형태로 출력하여 현재 데이터와 다음 데이터 비교 연산을 진행합니다. - 현재 데이터와 다음 데이터가 같을 경우 Count 변수를 증가 시킵니다. - 현재 데이터와 다음 데이터가 다를 경우 comp_str 변수에 데이터를 입력합니다. - For문 종료 후 마지막 데이터를 추가하여줍니다. - 최종 데이터를 리턴 합니다. 2. 코드 작성 및 분석 - 전체 코드는 아래와 같습니다. - i 값 변화에 따른 데이터 변화 - 최종 결과

Python/Automation 2020.12.13

Selenium을 이용한 웹 크롤링 - 3 (Iframe 이동)

Selenium을 이용하여 크롤링을 하다보면 개발자 도구로 분명히 Element 정보를 확인했는데 동작이 되지 않는 경우가 있습니다. 이럴 경우 페이지 소스를 열어 해당 태그 내용이 존재하는지 확인해주세요. 제가 크롤링 작업을 하던 페이지의 경우 아래와 같이 Iframe 형태로 데이터를 제공하고 있었습니다. 1. Iframe 정보 확인 - 개발자 도구를 이용하여 아래 클럽 버튼에 대한 xpath를 획득한 후 클릭하는 작업을 실행 해줍니다. - 잔여타임 예약 이동 및 클럽 선택 - 아래 코드를 실행 했지만 아무런 반응이 없습니다. 2. 소스 코드 확인 - Ctrl + U 버튼을 통해 소스 코드를 확인 합니다. - 소스 코드 확인 결과 위와 같이 확인되며, 아래와 같은 버튼에 대한 정보는 확인되지 않습니다...

Selenium을 이용한 웹 크롤링 - 2 (세션 종료 및 이동)

이전 포스트에 이어서 접속한 페이지에서 발생하는 팝업 등을 제거하거나 페이지를 이동하는 작업을 해보겠습니다. 1. Session 확인 - 이전 포스트에서 로그인 완료 시 아래와 같이 창이 2개가 발생하는 것을 볼 수 있습니다. - 팝업창만 제거 하기위해 현재 열러 있는 세션의 정보를 획득해 보겠습니다. - window_handles 명령어를 통해 세션 정보를 획득합니다. 2. Session 종료 세션은 실제 창이 떠있는 순서로 배열 형태로 되어있으며, 가장 아래에 있는 메인 세션을 제외하고 종료해보겠습니다. - 현재 열려 있는 세션 개수 확인 - while문을 사용하여 세션을 이동 후 가장 아래 세션(window_handles[0]) 제외하고 종료해줍니다. - 위의 코드에 따라 팝업이 종료되어 세션이 1..

Selenium을 이용한 웹 크롤링 - 1 (기초)

1. Selenium이란? Beautifulsoup 등 기존 크롤러들의 한계를 극복하기 위해 마우스, 키보드의 동작이나 디스플레이에 바로 나타나는 HTML과의 상호작용을 할 수 있는 Python 라이브러리 중 하나이다. 예를 들어, 자동으로 ID나 PW를 받아 로그인을 해주거나, 팝업을 지워주거나, 페이지를 이동하는 작업 등을 할 수 있다. 2. Selenium 설치 설치 전에 본인의 Python 버전 및 실행 위치 등을 체크해줍니다. - Powershell 실행 > python >>> import sys >>> sys.executable - 저는 3.8.1 버전을 사용하고 있습니다. - 현재 Python 공식 사이트 기준 3.9.0 버전까지 출시가 된걸로 확인이 됩니다. >>> Ctrl+Z >>> En..

Parsing, Crawling 이란?

1. 파싱(Parsing)이란? 파싱(Parshing)이란 어떤 페이지(문서, HTML 등)에서 내가 원하는 데이터를 특정 패턴이나 순서로 추출하여 정보로 가공하는 것을 말함. 주로 웹 페이지 소스나, 문서 등에서 행해지며 주로 HTML Tag, Xpath 등을 분석해 1차 적인 파싱(Parsing) 작업을 거치며 Python에서는 Beautifulsoup 모듈을 이용한다. 조금 더 Detail한 정보 수집이 필요할 경우 주로 정규 표현식을 이용한다. Python에서는 re 모듈을 사용하여 정규 표현식을 사용한 데이터 파싱(Parshing)을 진행한다. //re - Regex(Regular Expression) - 정규 표현식 2. 크롤링(Crawling)이란? 영어의 사전적 의미를 찾아보면 기어다니다는..

Django 기본 특징 및 구성

# MVC 패턴 기반 MVT Model-View-Controller를 기반으로 한 프레임워크 하지만 장고에서는 View를 Template, Controller를 View라고 부릅니다. 장고에서 View는 데이터를 가져오고 변형하는 컴포넌트인 반면에 Template는 데이터를 사용자에게 보여주는 컴포넌트이다. 그래서 장고를 흔히 MVT 프레임워크라고 부름 Model-View-Template Template -> 사용자에게 보여지는 UI 부분 View -> 실질적인 프로그램 로직이 동작하고 데이터를 가져오고 적절하게 처리한 결과를 Template에 전달 # 객체 관계 매핑 장고의 객체 관계 매핑(ORM, Object Relation Mapping)은 DB 시스템과 데이터 model 클래스를 연결시키는 다리와..

Python/Django 2020.10.31