분류 전체보기
-
[데이터수집] 한국부동산원 청약홈/청약Home 분양정보 (1)Python/웹스크래핑.데이터수집 2020. 12. 27. 20:33
한국부동산원 청약홈 페이지의 APT 분양정보 및 경쟁률 조회란의 1페이지에 있는 테이블을 다운로드 받은 후, beautifulSoup으로 파싱해서 tsv 형식으로 정제한다. (1) 한국부동산원 청약홈 페이지 1페이지의 테이블 다운로드 / 데이터 beautifulSoup으로 파싱 (2) 조회 조건 변경하기 - 전체 페이지 대상으로 실행/최신 일자로 실행 한국부동산원의 청약홈 페이지에 보면 분양정보 및 경쟁률이 있다. 문제는 자바스크립트 페이지라는 것. 드롭다운에서 선택지를 고르고 조회하는 형태다. 조회 화면은 이렇게 생겼다. 결과는 이렇게 출력된다. 아래는 1페이지의 일부다. 한 페이지에는 10건씩 표시되며 총 63페이지까지 있다. 데이터를 얻기 위해 개발자도구 - 네트워크 탭에 들어가서 해당 데이터가 어..
-
[데이터수집] 내일은 휴장일? 한국거래소 확인 (2) 조회Python/텔레그램봇:채권모니터링 2020. 12. 26. 21:03
봇을 돌리려면 오늘 휴장인지 정보가 필요하다. 해당 정보는 한국거래소 - MarketData - 시장정보 - 시장동향 - 증시일정 - 휴장일에서 1) 엑셀파일로 다운로드 후 확인 2) 조회 방식으로 확인 2가지 방법으로 확인이 가능하다. 조회도 파일다운로드처럼 OTP 발급과정을 거쳐서 처리하면 된다. Nowtime값을 GenerateOTP에 전달 -> OTP 발급 -> OTP를 MKD99000001에 전달 -> 조회 데이터 리턴 조회에 필요한 Nowtime은 epoch time이므로 int(round(time.time() * 1000))을 정의해서 처리한다. 이번에는 다운로드 대신 조회 기능을 사용해볼 예정이다. 개발자 도구의 네트워크 부분을 열어보니 조회에는 Nowtime.jspx라는 단계가 하나 더 ..
-
[데이터수집] 내일은 휴장일? 한국거래소 확인 (1) downloadPython/텔레그램봇:채권모니터링 2020. 12. 23. 17:16
봇을 돌리려면 오늘 휴장인지 정보가 필요하다. 해당 정보는 한국거래소 - MarketData - 시장정보 - 시장동향 - 증시일정 - 휴장일에서 1) 엑셀파일로 다운로드 후 확인 2) 조회 방식으로 확인 2가지 방법으로 확인이 가능하다. 엑셀파일 다운로드의 경우 채권정보를 가져왔던 방식과 동일하게 OTP 발급 스크립트를 추가해 처리하면 된다. 먼저 엑셀파일로 확인해본다. 실패한 엑셀파일 1차 시도 이쪽을 참고했다: nbviewer.jupyter.org/urls/financedata.github.io/posts/pandas-market-days-krx.ipynb 위 블로그에서는 OTP 발급절차 없이 바로 url로 접속해서 데이터를 확보했다. 바로 접속한 url은 이렇다: marketdata.krx.co.k..
-
[스케쥴링] 특정 시간에 실행하기 - 휴장일 커버Python/텔레그램봇:채권모니터링 2020. 12. 21. 19:21
파이썬에서 datetime.datetime object끼리는 크기 비교가 된다는 점을 이용해, 특정 시간을 기준으로 대기/실행 작업을 수행한다. 대기할 경우, datetime.datetime 객체와 datetime.timedelta를 더해 다음 기준 시간을 계산한다. time.sleep(datetime.timedelta(days=1, seconds=10).total_seconds())로 적당한 휴지시간을 둘 수 있다. + 휴장일을 커버할 수 있도록 구성했다 [python] 모듈 정리하기 까지해서 한 번 보내는 사이클은 완료되었다. 이제 해당 작업을 장이 열리는 시간에 반복하면 된다. 목표 하루에 확인은 4번만 하기로 하고, 주간에만 실행되니까, 월요일부터 금요일까지 10시 20분, 12시 20분, 2시 ..
-
[datetime] 시간포맷: datetime.strftime("%Y-%m-%d")Python 2020. 12. 18. 21:43
strftime으로 현재 시간 등을 출력할 때, 자주 안 쓰는 포맷코드는 기억하기가 쉽지 않다. 제목인 datetime.strftime("%Y-%m-%d")는 "2020-12-18"처럼 4자리 연도-2자리 월-2자리 일 형태다. 혹시 또 필요할 수 있으니, 자주 쓸 법한 것들은 정리해두고자 한다. 공식문서에서 strftime() and strptime() Format Codes(strftime()과 strptime() 포맷 코드) 로 검색하면 전체 테이블을 확인할 수 있다. Directive Meaning Example %a 짧은 요일이름 Sun, Mon, …, Sat.. %A 전체 요일이름 Sunday, Monday, …, Saturday %w 숫자로 표현한 요일, 0이 일요일, 6이 토요일임 0, 1..
-
[Telegram] python-telegram-bot API documentation작성중인글모음 2020. 12. 18. 21:06
python-telegram-bot documentation python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html telegram.Bot — Python Telegram Bot 13.1 documentation Parameters: chat_id (int | str) – Unique identifier for the target private chat. title (str) – Product name, 1-32 characters. description (str) – Product description, 1-255 characters. payload (str) – Bot-defined invoice payload, 1-128 bytes. This..
-
[python] 모듈 정리하기Python/텔레그램봇:채권모니터링 2020. 12. 18. 19:48
전체 코드가 길진 않지만, 작업 단위별로 파일을 따로 두는 게 확인하기 수월할 것 같아 코드를 분리하기로 했다. 폴더에서 스크립트 임포트를 임포트하면서 약간 헤맸어서 여기에 정리해두었다: hayjo.tistory.com/63 [import] 폴더 안의 스크립트 임포트하기 일반적으로 폴더에 코드를 정리해놓고 불러다 쓰려면 from folder import script를 하면 된다. 폴더가 여러 개 있거나, 여러 파일에서 코드를 임포트하려면 디렉토리 사이를 .으로 연결하면 된다. 폴더 hayjo.tistory.com 전체 작업은 이렇게 나뉜다. 데이터 받아오기1: requests로 한국거래소 사이트에서 OTP 발급받은 후 필요한 데이터 csv형태로 받아오기 데이터 받아오기2: requests로 한국은행 경제..
-
[TelegramBot] 봇 생성과 메시지전송Python/텔레그램봇:채권모니터링 2020. 12. 18. 19:08
python-telegram-bot 패키지의 telegram.Bot.sendMessage(chat_id, text)로 데이터를 전송한다. 생성 및 작동 확인 기존 텔레그램 계정에서 @botfather를 친구 추가하고 /newbot을 입력하면, 이름을 뭘로 할 거냐고 물어본다. Bot이나 _bot처럼 이름 끝을 bot으로 해서 대답하면 축하한다면서 봇 토큰을 준다. 봇 토큰은 나중에 @botfather에서 /mybots -> 해당 봇 선택 -> API Token에서 확인할 수 있다. 혹시라도 노출되었다면 Revoke current token으로 갱신하면 된다. 기존 계정에서 방금 만든 봇을 친구 추가하고, 시작을 누르면 /start 메시지가 전송된다. 아래 url로 들어가면 방금 메시지를 보낸 유저 정보가..