PYTHON

    [Python] 가상 환경 사용하기(venv)

    [Python] 가상 환경 사용하기(venv)

    가상 환경이란? 단어 그대로 가상으로 생성하는 환경이다. 실제 여러가지 프로젝트를 진행하다 보면 패키지(라이브러리)의 버전 문제로 인해 정상적으로 실행되지 않는 경험들을 할 것이다. 만약 특정 프로그램에서 어떤 패키지의 요구 버전이 1.7인데 현재 1.8 버전을 사용 중이라면 다운그레이드 후 프로젝트가 끝나면 다시 1.8로 업그레이드를 해야 하는 번거로움이 발생할 것이다. 이러한 문제를 해결하기 위해 프로젝트 별로 독립된 가상 환경을 사전에 구축하여 사용하는 것이 더 좋은 방법이라고 생각한다. 가상 환경 생성 이전 버전의 파이썬에서는 다음과 같은 명령어를 사용하여 별도의 설치 과정이 필요하다. pip install virtualenv 하지만, 파이썬 3.3 이상의 버전은 venv 모듈이 자체적으로 내장되..

    [Python] Selenium을 사용한 크롤링 제작(2)

    Selenium을 사용한 크롤링 제작(1) 기존 Selenium을 사용하여 만들었던 크롤링에는 치명적인 단점이 하나 존재하였다. 2022.09.07 - [개발💻/Python] - [Python] Selenium을 사용한 크롤링 제작(1) 기존 크롤링의 문제 기존 만들었던 크롤링은 중복 제거 로직이 존재하지 않아 같은 파일도 계속 다운로드되어 실질적으로 원하는 악성 APK 파일을 다운로드 할 수 없었기에 중복 제거 로직을 추가하기로 하였다. 중복 제거 로직 MD5 해시값 비교를 통해 중복 검사를 하기로 결정하여 List 로 선언 후 전체적인 코드를 구현하였다. 하지만, 매번 List가 초기화되어 이전에 다운로드 했던 APK의 MD5 해시값이 누적되는 것이 아니라 그 시점(코드를 돌릴 때)에만 중복제거가 이..

    [Python] pymysql 을 통해 데이터 베이스 값(Tuple)을 List로 가져오는 법

    간단하게 크롤링 제작을 하며 데이터 베이스를 사용해 중복 제거를 할 계획이었으나 Mysql 데이터 베이스 내 데이터를 가져올 때 Tuple 형태로 가져와져 리스트화 하는데 어려움이 있었다...😓 cursor.execute("SELECT '원하는 칼럼 명' FROM 테이블 명'") target_list = [] temp = cursor.fetchall() for q in range(len(temp)): target_list.append(temp[q]) print(target_list) 위와 같은 방식으로 데이터 베이스 내 데이터를 가져온다면 쉽게 List에 넣을 수 있을 것이라고 생각하였으나 오류(TypeError tuple indices must be integers or slices not tuple)..

    [Python] Zip파일 압축 해제(1)(비밀번호 포함)

    Python 모듈인 zipfile를 사용하여 간단하게 Zip 파일 압축해제 코드를 완성하였다. Import 디렉토리 및 파일명 탐색을 위해 os, 압축 Zip 파일을 다루기 위해 zipfile, 정확한 오류 위치 및 원인 파악을 위한 traceback 라이브러리를 Import 하였다. import os import zipfile import traceback Code 가장 우선적으로 Zip 파일이 존재하는 경로가 옳은 경로인지 검사한다. 실제 존재하는 경로일 경우 해당 경로 내 존재하는 모든 파일을 리스트에 넣은 후 다시 Zip 파일만 분류하여 리스트에 대입한다. def Unzip_fun(path): if os.path(path): # 파일 목록 획득 file_list = os.listdir(path) ..

    [Python] Selenium 사용하기

    [Python] Selenium 사용하기

    왜 Selenuim을 사용하지?? 일반적으로 널리 알려진 BeautifulSoup 라이브러리를 사용해도 사이트의 다양한 정보를 추출할 수 있다. 하지만...BeautifulSoup에는 자바스크립트로 동적으로 생성된 정보는 가지고 올 수 없는 한계가 존재한다😭 Selenium을 사용할 경우 동적으로 만든 데이터 크롤링이 가능해지고 다양한 요소에 클릭과 같은 이벤트를 주는 것이 가능해진다! Import and Install Selenium은 다른 라이브러리와 동일하게 다음과 같은 명령어로 쉽게 설치할 수 있다. pip install selenium Import 주로 사용하는 Import 목록은 다음과 같다. import selenium from selenium import webdriver from sele..

    [Python] Selenium을 사용한 크롤링 제작(1)

    [Python] Selenium을 사용한 크롤링 제작(1)

    Install 일반적인 설치과정과 동일하게 "pip install selenium"을 사용하여 설치할 수 있다. Import import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By import time Code "봇이 아니라 사람이야"를 알려주기 위해 user_agent를 추가한 후 webdriver 객체를 생성한다. (webdriver를 동일 경로 내에 위치시켜 별도의 경로 지정 코드는 추가하지 않았다.) user_a..