[Python/Bleach] Bleach 라이브러리 이용해 HTML 태그 삭제하기
·
Minding's Programming/Crawling
네이버 뉴스 API를 통해 뉴스 데이터를 수집하다보니, 뉴스 제목에 해당하는 title에 HTML 태그가 그대로 들어와 문자열에 포함되는 경우가 있었다. 이 문자열 그대로 홈페이지에 노출할 예정이었다 보니, 해당 문자열을 필터를 통해 HTML 태그를 지울 필요가 있었다. 그럴때는 Bleach의 clean메서드를 이용하면 해결할 수 있다. from bleach import cleanarticle = '가나다라'print(clean(article, tags=[], strip=True))>>>'가나다라'
[FastAPI/Crawling] 네이버 뉴스 API를 활용해 야구 뉴스 데이터 수집하기
·
Minding's Programming/FastAPI
토이 프로젝트로 야구장 관련 홈페이지를 만들고 있는데, KBO 야구장을 소개하는 것이다보니 해당 뉴스를 함께 노출할 수 있었으면 좋겠다는 생각에 야구 뉴스만을 수집하는 크롤러를 제작해보았다. 실시간으로 뉴스 업데이트를 해주는 것이 목표이기 때문에, 기본적으로 비동기적 실행이 가능하도록 제작했다. 우선 '야구'라는 키워드를 가진 뉴스를 모두 수집한 다음 link라는 칼럼(네이버 뉴스 상의 하이퍼링크)에서 'kbaseball'이라는 키워드가 포함된 것만 DB에 저장할 리스트에 추가하는 방식으로 설계했다. import aiohttpimport asynciofrom config import get_secretclass NaverNewsScraper: NAVER_API_NEWS = "https://opena..
[FastAPI/AWS/Uvicorn] AWS에 프로젝트 배포하기
·
Minding's Programming/FastAPI
배포 준비uvicorn host 0.0.0.0으로 변경, reload=False, port=80main.py jinja2에서 파일 경로 str 타입으로 변경requirements.txt 패키지 체크 (aiohttp 누락되어 있는거 추가)github에 코드 올리기https://github.com/settings/tokens/new 토큰 발급토큰 복사 해두기VPS : 가상 사설 서버 구축AWS Lightsail 사용인스턴스 생성ssh를 사용하여 연결 (브라우저에서 접속)sudo apt-get updatesudo apt-get -y upgradesudo apt-get install build-essentialsudo apt-get install curl git vim python3 python3-piptouc..
[Python/FastAPI/ODMantic] TypeError: field Config is defined without type annotation
·
Minding's Programming/에러 코드
인프런의 '파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)' 강의를 수강하다가 발생한 에러코드.서버를 실행할 때 마다 위와 같은 에러가 발생했다.https://art049.github.io/odmantic/modeling/ Modeling - ODManticModeling Models To create a Model, simply inherit from the Model class and then specify the field types and eventually their descriptors. Collection Each Model will be linked to its own collection. By default, the collection name wil..
[Windows10/WSL2/Zsh] Windows에 zsh 설치하기
·
Minding's Programming/Knowledge
Windows에 Linux(Ubuntu)를 설치한 이후 이를 잘 활용하기 위해 Zsh도 설치해보았다.Windows에서 Linux를 설치하는 방법은 아래 링크를 참고하자.[Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치 [Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치Windows 환경에서 Fastapi를 활용한 백엔드 개발을 위해 WSL2를 설치해보았다. 중간 중간 에러가 발생해 혹시 다른 PC나 노트북에서 새로 설치할 것을 대비해 글을 적는다. ** WSL2는 Windows 11 또는 Windowsminding-deep-learning.tistory.com ** 이 글에서는 ubuntu와 windows terminal이 ..
[Windows10/WSL2] Windows 환경에서 Linux 사용을 위한 WSL2 설치
·
Minding's Programming/Knowledge
Windows 환경에서 Fastapi를 활용한 백엔드 개발을 위해 WSL2를 설치해보았다. 중간 중간 에러가 발생해 혹시 다른 PC나 노트북에서 새로 설치할 것을 대비해 글을 적는다. ** WSL2는 Windows 11 또는 Windows 10 21H2 버전 이상이어야만 설치가 된다는 점 참고. 1. Linux용 Windows 하위 시스템 사용 및 가상화 사용Windows 검색 또는 [제어판] - [프로그램 및 기능] - [Windows 기능 켜기/끄기]로 진입해 아래 3가지에 대해 체크해준다. Linux용 Windows 하위 시스템Windows 하이퍼바이저 플랫폼가상 머신 플랫폼(하단 2개는 당장 하지 않아도 되나 추후 "가상 머신 플랫폼 Windows 기능을 ~ 확인하세요"와 같은 오류가 나올 수 있..
[FastAPI] 파이썬 멀티 프로세싱
·
Minding's Programming/FastAPI
해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 프로세싱 동시성과 병렬성 개념 정리 와 파이썬 멀티 스레딩 사용해보기를 통해서 파이썬이 왜 병렬적 멀티 스레딩 연산을 하지 못하는 지에 대해 알아보았다. '동시성'의 개념을 이용한 I/O bound 코드에 있어 멀티 스레딩은 가능했지만, 파이썬은 GIL이라는 개념이 있기 때문에 스레드로 병렬 연산을 하지 못했다. (Cpu bound 코드와 같이 하나의 계산을 여러 번 반복하는 일 등) 파이썬에서 병렬 연산을 위해서는 프로세스 자체를 복사해 사용하는 '멀티 프로세싱'을 사용할 수 있다. 스레드 연산으로는 구현하기 힘든 병렬 연산을 멀티 프로세싱에서는 할 수 ..
[FastAPI] 파이썬 멀티 스레딩 사용해보기
·
Minding's Programming/FastAPI
해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 스레딩 우선 멀티 스레딩이란, 이전 글에서 정리한 '동시성'의 개념에서 비롯된 프로그래밍 개념이다. 하나의 프로세스 내에서 여러 개의 스레드가 동시에 작업을 실시해 속도 향상 등의 성능 개선 효과를 기대할 수 있다. 각 스레드가 독립적으로 실행하지만 자원을 공유하기 때문에, 효율적이면서도 충돌 가능성의 위험이 있다. 싱글 스레딩의 예시 # 파이썬 싱글스레딩 예시 import requests import time import os import threading def fetcher(session, url): print(f"{os.getpid()} proces..