반응형

전체 글 461

셀레니움 h1, strong 등 HTML 태그 적용 텍스트 삽입 방법 예제

파이썬의 selenium을 활용하여 텍스트를 입력하는 과정에서 h1이나 strong과 같은 HTML 태그가 적용된 텍스트로 입력을 원하는 경우가 있습니다. 이 글에서는 원하는 HTML 양식이 적용된 텍스트를 넣는 방법을 간략하게 정리해 보겠습니다. 참고: 셀레니움 기본 텍스트 입력 코드 예제 셀레니움에서는 일반적으로 find_element 등 메서드로 원하는 위치를 찾은 뒤에 send_keys 메서드를 활용하여 텍스트를 입력하게 됩니다. from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() txt_box = driver.find_element(By.NAME, 'txt_box_..

Python/Utils 2023.09.26

셀레니움 오류 raise NoSuchElementException: Message: no such element: Unable to locate element 원인 및 해결법

파이썬의 selenium 모듈로 버튼 클릭이나 텍스트 입력 등 과정을 수행하기 위하여 필요한 객체를 찾는 과정에서 NoSuchElementException 에러가 자주 발생할 수 있습니다. 이번 글에서는 해당 오류의 대표 케이스들을 정리해보고 원인 및 해결 방법을 케이스별로 정리해보도록 하겠습니다. 셀레니움에서 일반적으로 name이나 id 등 속성으로 element를 찾는 방법은 아래와 같습니다. from selenium.webdriver.common.by import By a = driver.find_element(By.NAME, 'name_00') # name 속성 기준 탐색 b = driver.find_element(By.ID, 'id_01') # id 속성 기준 탐색 위 형태의 코드를 실행하는 과..

Python/Debugging 2023.09.25

npm ERR! enoent ENOENT: no such file or directory 해결 방법

오류 개요 리액트 앱 생성 과정에서 다음과 같은 오류가 발생하였습니다. 시도했던 명령어 npx create-react-app my-app 에러 로그 메시지 npm ERR! code ENOENT npm ERR! syscall lstat npm ERR! path C:\Users\user\AppData\Roaming\npm npm ERR! errno -4058 npm ERR! enoent ENOENT: no such file or directory, lstat 'C:\Users\user\AppData\Roaming\npm' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent 오류 해결법 확인 결과 no suc..

파이썬 해시 함수 모듈 hashlib 사용법

Python에서 해싱을 간편하게 진행시킬 수 있도록 해주는 라이브러리인 hashlib에 대하여 간략하게 소개해보고 사용 방법 예시를 살펴보도록 하겠습니다. hashlib에서 지원하는 해시 함수 종류 hashlib에서는 과거에 많이 활용되던 방법인 MD5 등부터 비교적 최신 해시 알고리즘인 SHA-3, BLAKE2 등까지 많은 종류의 해시 함수를 제공하고 있습니다. 지원하는 해시 함수의 종류는 아래와 같이 확인이 가능합니다. import hashlib print(hashlib.algorithms_guaranteed) # {'shake_128', 'blake2b', 'sha256', 'sha3_384', 'sha3_512', 'sha224', 'sha3_256', 'shake_256', 'sha1', 'sh..

Python/Utils 2023.09.23

JSONDecodeError: Expecting value: line 2 column 7 (char 8) / Expecting ',' delimiter 원인 및 해결법

Python으로 json 문자열 파싱 과정을 수행할 때 자주 발생하는 오류 케이스인 JSONDecodeError에 대하여 발생 원인과 해결 방법을 간략하게 정리해 보겠습니다. 정상적인 json 파싱 케이스 아래와 같이 정상적인 json 양식으로 저장된 문자열을 가정해 보겠습니다. txt = '{"a" : "123", "b" : {"c" : "456"}}' 이런 정상적인 양식의 문자열의 경우, json 모듈의 loads 메서드를 통하여 쉽게 파싱을 진행할 수 있습니다. import json txt_dict = json.loads(txt) print(txt_dict['b']['c']) # 456 오류 케이스 1: 딕셔너리 규칙이 지켜지지 않은 경우 json에서는 {}로 딕셔너리 자료형 시작과 끝을 표현하고,..

Python/Debugging 2023.09.23

파이썬 FastAPI / Flask 로컬 서버 포트(127.0.0.1) 띄우기 방법 정리 및 차이 비교

Python에서 로컬 서버 포트 주소인 127.0.0.1:port에 해당하는 페이지를 띄우는 방법을 FastAPI와 Flask에서의 방법 차이를 기준으로 간략하게 정리해보도록 하겠습니다. FastAPI 서버 포트 띄우기 방법 FastAPI에서 로컬 서버 포트를 열기 위해서는 해당 모듈과 함께 uvicorn 모듈도 필요합니다. 아래 명령어를 통하여 간단히 설치가 가능합니다. $ pip install fastapi $ pip install uvicorn 다음과 같이 간단한 get 메서드를 지원하는 상황을 가정해보고, main.py 파일을 간단하게 작성해보도록 하겠습니다. from fastapi import FastAPI # FastAPI 객체 선언 app = FastAPI() # 기본 주소가 호출된 경우 실..

Python/Backend 2023.09.22

localhost 포트 페이지 "사이트에 연결할 수 없음" 원인과 해결 방법 정리

localhost:8000 처럼 포트를 직접 열어서 서버를 띄웠지만, 막상 페이지를 열었더니 "사이트에 연결할 수 없음" 메시지가 뜨면서 해당 페이지가 접속되지 않는 현상이 나타나는 경우가 있습니다. 이런 경우 가장 흔한 원인 몇 가지를 살펴보고 해결법을 간략하게 정리해보도록 하겠습니다. 1. 원격 환경에서 포트를 열었던 경우 현재 컴퓨터에서 다른 인스턴스를 사용 중이거나 구글 코랩 등 다른 환경에서 포트를 열었던 상태라면 로컬 컴퓨터에서는 ip 주소가 다르기에 localhost:8000에 해당하는 페이지가 로드되지 않을 수 있습니다. 이런 경우는 원격 환경에 해당하는 ip주소:8000 처럼 ip 주소를 기준으로 직접 접근하는 방법을 시도해보시거나 로컬 환경에서 포트를 여는 프로그램을 실행시켜주면 됩니다..

2023.09.20

UnicodeEncodeError: 'cp949' codec can't encode character 원인 / 해결 방법

오류 개요 파이썬에서 txt나 json 파일을 read/write 하는 과정에서 다음과 같은 오류가 발생하였습니다. UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 122: illegal multibyte sequence 참고로, 해당 코드는 리눅스 체제에서는 정상 작동되었는데, 에러가 발생한 운영체제 환경은 윈도우였고, 한국어 세팅이었습니다. 오류 원인 한국어 환경에서의 인코딩은 'cp949'로 지정이 된 경우가 많은데, 유니코드('utf-8') 등 다른 인코딩 방법으로 인코딩된 파일을 다루는 경우, 인코딩 버전 불일치로 인하여 해당 에러가 발생할 수 있습니다. 오류 해결법 파일을 다루는 과정에서 encoding 방법을 명시적으..

Python/Debugging 2023.09.19

ChatGPT, GPT-4 토큰 개수 카운팅 및 인코딩/디코딩 방법(파이썬 tiktoken 모듈 활용)

GPT-3.5(ChatGPT) 및 GPT-4 활용을 위하여 원하는 글의 토큰 개수를 세거나 Encoding 및 Decoding 과정이 필요할 때가 종종 있습니다. 이 과정은 파이썬의 tiktoken 라이브러리의 기능을 활용하면 해당하는 토크나이저를 쉽게 불러올 수 있고, 토큰 개수 카운팅 및 인코딩/디코딩도 쉽게 할 수 있습니다. 이번 글에서는 해당 모듈의 사용법을 중심으로 위의 방법들을 간략하게 정리해보도록 하겠습니다. 토크나이저 선언 방법 우선, !pip install tiktoken 명령어로 모듈 설치를 진행해줍니다. 이후, ChatGPT(gpt-3.5-turbo) 혹은 GPT-4에 대하여 토크나이저를 가져오려면 cl100k_base 인코딩 방법을 지정해주시면 됩니다. 이후 모델명을 지정하여 최종 ..

Python/NLP Code 2023.09.19

파이썬 특정 시각에 코드를 실행하는 방법(schedule, threading 모듈 활용)

Python에서 코드를 실행시켜 두었을 때, 특정 시각마다 원하는 코드가 작동되도록 하고 싶을 때가 있습니다. 이번 글에서는 파이썬 내부에서 코드 주기적 실행이 가능하도록 하는 방법을 기본 예제와 별도의 스레드를 두는 예제로 나누어 간략하게 정리해보도록 하겠습니다. 특정 시각 실행 기본 예제(schedule 모듈) 예를 들어, 매일 오전 11시에 my_job() 함수 내의 코드를 실행하고 싶다면 schedule 라이브러리를 활용하여 다음과 같이 코드를 작성해주시면 됩니다. import schedule # 미설치 시 !pip install schedule import time def my_job(): print("오전 11시 입니다!") schedule.every().day.at("11:00").do(my..

Python/Utils 2023.09.18
반응형