분류 전체보기239 비동기로 웹크롤링 from bs4 import BeautifulSoup as bs import aiohttp import asyncio async def fetch(session, url, i): async with session.get(url) as res: html = await res.text() soup = bs(html, "html.parser") tag = soup.find("span", class_="title") # 첫번째 글제목만 print(f"{i+1} : {tag.text}") async def main(): BASE_URL = "https://myinbox.tistory.com/" urls = [f"{BASE_URL}?page={i}" for i in range(1, 11)] async with ai.. 2023. 4. 1. [장고] 알아두면 좋은 내용 * 프로젝트 생성 별도로 경로 지정 안하면 하위 폴더를 루트로 사용함 https://learn.microsoft.com/ko-kr/training/modules/django-get-started/5-exercise-first-project * 사이트와 앱 메인 사이트의 자식으로 앱 폴더가 위치할거 같지만 실제로는 메인 사이트와 여러 앱이 동일 경로에 위치 개념적으로는 사이트 안에 설문조사 앱, 고객센터 앱 등으로 사용 * 뷰 용어는 뷰인데 실제로는 컨트롤러 뷰에서 HTML을 직접 심기도 가능하지만 일반적으로 모델과 템플릿 중간에서 중재하는 역할 * URL 루트에서 바로 처리 가능하긴 한데 앱으로 보낸 후 앱에서 처리하도록 하는 것이 관리적으로 용이 (앱이 늘어날 수 있으므로) 실제 주소 대신 변수 패턴으.. 2023. 2. 14. [홈어시스턴트] 아이폰 배터리 부족시 구글홈 미니로 알리기 라즈베리파이에 도커 방식으로 홈어시스턴트 설치 후 아이폰 단축어를 통해 구글홈 미니 연동하기 데이터 관리용 폴더 생성 sudo mkdir -p /data/ha HA 설치 sudo docker run -d \ --name homeassistant \ --privileged \ --restart=unless-stopped \ -e TZ=Asia/Seoul \ -v /data/ha:/config \ --network=host \ ghcr.io/home-assistant/home-assistant:stable HA 실행 라즈베리IP:8123 아이폰 단축어 자동화 ---- https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-c.. 2023. 1. 28. pandas - 데이터프레임 변동 체크 주기적으로 실행하는 스크립트가 있는데 데이터프레임이 이전 값과 같은지 비교하려고 했다 처음엔 csv로 저장 후 해시값을 비교했는데 찾아보니 더 간단하게 구현 가능했다 import pandas as pd pkl_path = "./data/test.pkl" df1 = pd.DataFrame({"a": [1], "b": [1]}) df2 = pd.DataFrame({"a": [1], "b": [2]}) # 첫번째 df를 pickle 포맷으로 저장 df1.to_pickle(pkl_path) # 기존 피클 불러오기 df_old = pd.read_pickle(pkl_path) # 두번째 df와 비교 print(df2.equals(df_old)) 참고 - 파이썬 피클 https://aplab.tistory.com/e.. 2023. 1. 26. 아마존 리눅스 zsh 셋팅 zsh 설치 sudo yum install zsh 패스워드 없으면 생성 sudo passwd ec2-user 기본 쉘 변경 sudo yum install util-linux-user chsh -s $(which zsh) 터미널 재접속 후 기본 쉘 확인 (처음에 객관식 물어보면 0번) echo $SHELL oh-my-zsh 설치 sudo yum install git sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 다른 테마로 변경 vim ~/.zshrc # vscode에서는 code ~/.zshrc ZSH_THEME 항목 수정 (ex. ZSH_THEME="agnoster") 테마 리스.. 2023. 1. 26. pandas - 특정 문구 포함된 행 삭제 lst = ["text1", "text2", "text3"] # 방법1 df = df[~df['column_name'].str.contains('|'.join(lst))] # 방법2 df = df[~df["column_name"].isin(lst)] lst 에 있는 문구 중 하나라도 일치하면 해당하는 행 삭제 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isin.html 2023. 1. 25. matplotlib 한글 표시 폰트 다운로드 https://hangeul.naver.com/font/nanum 폰트 경로 찾기 import matplotlib as mpl print(mpl.matplotlib_fname()) 폰트 추가 /home/.../matplotlib/mpl-data/fonts/ttf 에 NanumGothic.ttf 추가 캐시 경로 찾기 import matplotlib as mpl print(mpl.get_cachedir()) 캐시 경로의 fontlist 파일 삭제 한글 셋팅 from matplotlib import rcParams rcParams["font.family"] = "NanumGothic" 참고 https://koosco.tistory.com/38 http://corazzon.github.io/mat.. 2023. 1. 18. pip 내장인 venv로 가상환경 구성 * 파이썬 설치 서로 다른 버전으로 2개 이상 설치 후 명령어로 확인 py -0 * 가상 환경 만들기 python -m venv myvenv 현재 경로에서 서브 폴더 myvenv 생성됨 다른 파이썬 버전으로 하려면 py -3.9 -m venv myvenv * 가상환경 진입 ctrl+shift+P > python select interpreter > myvenv 항목 선택 > 터미널 kill > 새 터미널 수동 진입하려면 myvenv\Scripts\activate 를 실행한다 * 주의1 마이너 버전 포함하면 생성 불가 (이유는 아직 모르겠음) py -3.9.12 -m venv myvenv * 주의2 가상 환경 경로에 띄어쓰기는 없게 하자 (c:\test folder\.. 이러면 안됨) 설치 안되는 확장들이.. 2022. 12. 27. pipenv 구성해보기 https://github.com/pypa/pipenv https://heytech.tistory.com/320 * 사전 셋팅 (Windows 기준) 서로 다른 버전의 파이썬 설치 터미널 실행 pipenv 설치 (pip install pipenv) * 가상환경 구성 작업용 폴더 진입 원하는 파이썬 버전 구성 (pipenv --python 3.9.12) 원하는 패키지 설치 (pipenv install pandas) * py 실행 가상환경 진입해서 실행하거나 (나가기는 exit) pipenv shell python test.py 가상환경 밖에서 바로 실행 pipenv run python test.py * 패키지 의존성 관리 pipfile.lock 파일로 관리됨 내보내기 : pipenv lock 불러오기 : .. 2022. 12. 27. 이전 1 2 3 4 5 6 7 8 ··· 27 다음