본문 바로가기

파이썬

파이썬으로 뉴스 알림 텔레그램 봇 만들기(3): 매 시간 메시지 보내기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 프로그램 종료 전까지 매 시간 새로운 뉴스를 전송해주는 봇을 만들겠습니다. 여러 가지 스케줄러를 사용할 수 있겠지만 사용이 손쉬운 APScheduler 라이브러리를 사용하겠습니다. 파이썬 스케줄러 만들기 스케줄러는 컴퓨터에서 원하는 작업을 특정 시간/주기에 실행할 수 있도록 일정을 관리해줍니다. 여러 가지 스케줄러가 있지만 매우 간단한 수준의 일정관리면 충분하기 때문에 파이썬 라이브러리를 이용하겠습니다. 스케줄러에게 시킬 일을 다음과 같습니다. 1. 한 시간마다 2. 뉴스 링크를 수집하고 3. 새로운 링크가 있으면 텔레그램 메시지를 나에게 보.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(2): 새로운 뉴스 링크만 추출하기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 텔레그램 봇을 생성하고, 이전 시간에 작성했던 뉴스 스크래핑 코드를 수정하겠습니다. 새로운 뉴스가 있으면 해당 링크만 리스트로 결과를 반환하고 만약 새로운 뉴스가 없다면 빈 리스트를 반환하도록 작성하겠습니다. 텔레그램 봇 만들기 우선 텔레그램 봇을 만들겠습니다. 텔레그램을 열고 BotFather를 검색합니다. 채팅창이 열리면 /start 를 입력하면 봇을 생성하고 관리할 수 있는 안내 문구를 띄어줍니다. 우리는 처음 봇을 만드는 입장이니까 /newbot이라고 입력하면 됩니다. 안내에 따라서 bot name과 username을 입력합니다. 모두.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(1): 뉴스 링크 수집하기 특정 업무나 투자 활동을 하는 경우 뉴스를 지속적으로 확인해야 하는 일들이 있습니다. 예를 들어 회사에서 IR, PR 업무를 담당하는 경우가 해당합니다. 또는 특정 주식 종목 등의 뉴스를 체크할 수도 있겠네요. 이번부터 세 차례에 걸쳐서 내가 원하는 특정 검색어를 기준으로 모바일 네이버 뉴스를 한 시간마다 푸시해주는 텔레그램 봇을 만드는 방법을 알아보겠습니다. 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 사이트 구조 살펴보기 사이트 구조를 살펴보고 원하는 키워드로 뉴스 기사 링크를 수집하는 코드를 작성해 보겠습니다. 웹 스크래핑을 할 때 알아두면 좋은 한 가지 팁 모바일 사이트 버전을 찾아보는 .. 더보기
[파이썬 pandas] 주식 전 종목 코드(코스피, 코스닥) 구해서 데이터프레임으로 읽어오기 파이썬을 활용해서 계랑 투자를 해 볼까 고민하는 개인 투자자라면 필요한 것 중에 하나가 바로 종목 코드입니다. 다행히도 종목 코드 데이터는 한국 거래소에서 손쉽게 엑셀로 다운로드할 수 있습니다. http://marketdata.krx.co.kr/mdi#document=040601 한국거래소 홈페이지에서 [시장정보] > [상장현황] > [상장회사 검색]을 선택하면 됩니다. 아래와 같은 화면이 보인다면, 원하는 조건에 맞게 조회 버튼을 누른 후 엑셀로 다운로드하면 됩니다. 이제 이 데이터를 판다스에서 불러오겠습니다. 판다스에서 엑셀 데이터 읽어오기 판다스에는 엑셀 파일을 읽을 수 있는 read_excel()이라는 메서드를 제공하고 있습니다. 매개변수로 파일명(파일 경로)을 전달하면 엑셀 데이터를 불러옵니다... 더보기
[파이썬 pandas] 데이터프레임 컬럼 순서 변경, 추가, 이름 바꾸기 판다스를 사용하다 보면 생각보다 자주 필요한 기능이 칼럼의 순서를 바꾸고, 새 컬럼을 추가하고, 이름을 변경하는 것입니다. 사용법이 어려운 기능들은 아니지만 아직 pandas가 익숙하지 않은 분들은 종종 헷갈려하십니다. 이번 시간에는 칼럼을 다루는 세 가지 방법을 알아보겠습니다. 컬럼 순서 바꾸기 우선 오늘 예제로 사용할 데이터프레임을 만들겠습니다. # 라이브러리를 불러옵니다. import pandas as pd import numpy as np # 데이터프레임을 생성합니다. df = pd.DataFrame( {'name': ['KIM', 'LEE', 'SMITH','BROWN', 'MILLER'], 'age': [24, 32, 43, 24, np.nan], 'height': [178, 168, 171,.. 더보기
[파이썬 pandas] 판다스 매개변수 axis의 의미를 알아보자 판다스를 사용하다 보면 평균 계산, 데이터프레임 열이나 행 삭제 작업등을 할 때 axis(축)을 지정해야 합니다. 축을 넣어야 할 때면 0을 넣어야 하는지 1을 넣어야 하는지 헷갈릴 수 있습니다. 이번 시간에는 바로 이 axis에 대해서 알아보겠습니다. ① aixs=0(index)은 행을 따라 동작합니다. 각 컬럼의 모든 행에 대해서 작용합니다. ② aixs=1(columns)은 열을 따라 동작합니다. 각 행의 모든 컬럼에 대해서 작동합니다. 그림으로 직관적으로 이해해 보겠습니다. 예제로 사용할 데이터프레임을 만들겠습니다. df = pd.DataFrame( {'name': ['KIM', 'LEE', 'SMITH','BROWN', 'MILLER'], 'age': [24, 32, 43, 24, np.nan].. 더보기
[파이썬 pandas] 데이터의 순위를 구하는 rank() 함수 엑셀에 Rank 함수가 있는 것처럼 판다스에도 rank 함수가 존재합니다. 이 함수를 이용하면 수 목록 내에서 개별 수의 크기 순위를 손쉽게 계산할 수 있습니다. 이번에는 rank 함수를 사용하는 방법을 알아보겠습니다. 코드 DataFrame.rank(self, axis = 0, # 기본값 0(index)으로, index 축을 기준으로 랭크가 계산됩니다. method = 'average', # 동점을 가진 데이터들의 순위를 매기는 방법입니다. numeric_only = None, # True로 설정된 경우 숫자 열만 순위를 매깁니다. na_option = 'keep', # NaN 값 순위를 매기는 방법입니다. ascending = True, # 오름차순, 내림차순 정렬인지 정합니다. pct = False.. 더보기
파이썬 리스트 값 수정, 제거/삭제하기: del, remove, pop 리스트(list)는 여러 개의 값을 한 번에 저장할 수 있는 기본 자료 구조로, 값의 수정과 삭제가 자유로운 장점이 있습니다. 이번에는 리스트에서 값을 수정하고 제거하는 방법을 알아보겠습니다. 값 수정하기 리스트는 인덱싱을 이용해서 값을 수정할 수 있습니다. zero-based numbering을 사용하기 때문에 값의 순서는 0부터 시작합니다. kospi_top5 = ['삼성전자', 'SK하이닉스', '삼성전자우', '삼성바이오로직스', 'NAVER'] kospi_top5[4] = '네이버' kospi_top5 # ['삼성전자', 'SK하이닉스', '삼성전자우', '삼성바이오로직스', '네이버'] kospi_top5[4]의 값 NAVER가 네이버로 바뀌었습니다. 값 제거하기 리스트에서 값을 삭제하는 방법.. 더보기