본문 바로가기

전체 글

(54)
파이썬 가상환경 설정 파이썬에서 가상환경을 이용해 개발을 진행할 수 있다. 프로젝트마다 사용하는 앱의 버전이 다를수도 있으므로, 가상환경을 사용하면 편리하다. cmd를 기준으로 설명해본다. 1. 가상환경 생성 가상환경을 생성할 경로에서 아래 명령어를 입력한다 python -m venv [가상환경이름] 위 명령어를 실행하면, 해당 경로 안에 가상환경 폴더가 생성된다. 2. 가상환경 실행 [가상환경폴더]\Scripts\activate 위 명령어를 입력 뒤, 콘솔의 프롬프트 앞에 (가상환경이름) 접두어가 붙어있다면 가상환경이 제대로 실행된 것이다. 3. pip 업그레이드하기 가상머신을 실행한 뒤, 다른 앱들을 설치하기 전 pip의 버전을 업그레이드 시켜주는게 좋다. python -m pip install --upgrade pip ..
파이썬으로 크롤링하기 - WebDriverWait() 사용하기 크롤링할 내용이 많아지면, 파싱을 다 하기 전에 코드가 넘어가버리는 경우가 생겼다. 찾고자 하는 element를 받아 온 뒤 진행할 수 있는 해결책을 찾아보니 WebDriverWait가 나왔다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox("drive 경로") driver.get("URL 주소") try: # ID가 myDynamicElement인 elem..
SQL Injection 정의 SQL(Structured Query Language) DB를 구축하고 활용하기 위해 사용하는 언어로 DB를 정의, 조작, 제어할 수 있음. SQL Injection 웹 어플리케이션의 허점을 이용해 악의적인 SQL쿼리를 삽입해 DB를 비정상적으로 조작하는 취약점. 종류 1. 인증우회 로그인 폼에 주로 시도하며, SQL 쿼리문에의 True/False 논리적 연산 오류를 이용한다. ' or 1=1# , ' or 2>1--등 무조건 결과가 참인 쿼리를 입력해 로그인 페이지를 우회한다. 2. Error-based Injection DB의 에러메시지를 기반으로 정보를 유추한다. 주로 group by와 having 구문을 이용해 고의로 오류를 발생시키고, 출력되는 에러메시지를 기반으로 데이터를 절취한다. 3...
인코딩, 디코딩, 해시 인코딩, 디코딩, 해시의 정의와 차이점 새 창에서 열기
SIBF - 한강 작가 강연 영원히 새롭게 출현하는 것들 이번 서울국제도서전에 한강 작가가 주제 강연을 맡아 한다는 소식을 들었을 때, 꼭 가야겠노라 다짐 했었다. 신청 날을 달력에 적어두고, 알람을 맞춰두고, 티켓 오픈시간을 기다리며 긴장하고 있자니 소녀팬이 된 기분이 들었다. 이 글은 한강 작가가 한 말을 받아 적은 걸 토대로 내 생각을 덧붙인 감상이다. 좋아하는 작가님이라 설레는 마음으로 갔는데, 정말 내가 생각한 모습이라 신기했다. 말투, 어휘, 생각 모두. 한강 작가는 그가 쓰는 글과 닮았다. 글은 사람을 닮는다는 말에 깊이 동감 했다. 무언가 확실할 땐 기도를 하지 않는다 기도는 불확실성을 견뎌내기 위한 자기 위안이다. 100년 뒤에도 존재할 숲 그들은 어떻게 100년 뒤를 그리 쉽게 보장하는걸까. 사실 생각해보면 100..
파이썬으로 클립보드 제어하기 파이썬에서 클립보드를 제어할 수 있는 pyperclip을 설치한다. pip install pyperclip copy()를 이용해 복사할 내용을 클립보드에 입력하고, paste()를 이용해 불러올 수 있다. 간단한 예제를 보자. import pyperclip pyperclip.copy('HelloWorld') txt = pyperclip.paste() print(txt) >> HelloWorld 출력
파이썬으로 크롤링하기 - 메가박스 서울 지점명 받아오기 selenium과 beautifulSoup을 이용해 서울 내 메가박스 영화관 리스트를 받아오려 한다. 1. 메가박스 사이트 소스코드 확인 영화관 리스트는 아래 URL에서 확인 가능하다. http://www.megabox.co.kr/?menuId=theater 소스코드를 살펴보면, 각 지역을 class명으로 구별해 둔 것을 볼 수 있다. 필자가 크롤링하려는 서울의 클래스명은 menu01이다. 해당 메뉴를 클릭하면, 클래스가 menu01 active로 변경되고, 아래쪽에 서울 내 지역들이 동적으로 나타나는 것을 볼 수 있다. 영화관 지점명은 id가 region_10인 ul > li > a태그의 text로 확인 가능하다. 2. 셀레니움을 이용한 동적코드 크롤링 필자가 작성한 코드는 다음과 같다. from se..
selenium으로 네이버 자동 로그인하기 네이버는 셀레니움으로 로그인을 시도하면 캡챠 페이지가 뜬다. 아래는 시도한 코드와 로그인이 막힌 모습. from selenium import webdriver driver = webdriver.Chrome(r'C:\Users\smddu\Documents\chromedriver\chromedriver.exe') driver.implicitly_wait(3) driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com') driver.find_element_by_name('id').send_keys('아이디') driver.find_element_by_name('pw').send_keys('비밀번호') dr..