Python 16

[KakaoTalk API] 애플리케이션 추가 및 초기 설정하기

패기 있게, 한국인들이 주로 사용하는 메신저인 카카오톡으로 공모주 정보를 전달하기 위해 카카오톡 API를 사용했었다.(과거형) 이 글을 보시는 분들에게 애플리케이션 생성 전에 미리 말씀드리자면, 나에게 메시지 보내는 기능 이외에 것들은 절차가 매우 복잡하다. 친구에게 메세지메시지 보내는 제약조차 까다롭기 때문에(친구가 내가 생성한 애플리케이션에 초대를 해서 가입을 하면, 친구의 ID를 받아오는 API를 이용하여 메시지를 전송함) 나는 나에게 메세지 보내기 -> 전달하기로 메시지를 1주일 정도 전송하다가 카카오톡 서비스를 종료하였다. (메시지도 텍스트 메시지는 200글자가 맥시멈이다) 무엇보다, 한번에 여러 명의 사람에게 메시지를 동시에 전송하려면 카카오톡 채널을 사용해야 하는데 유료이다. 대부분 기업용(..

API/KakaoTalk 2021.11.26

[공모주 알리미 개발] 2-4. 38커뮤니케이션 크롤링 : 기업 개요, 공모 정보, 청약 일정 가져오기

이번 포스팅은 이전 포스팅에서 공모주 알리미로 뿌려줄(청약 전일, 당일, 마감일 / 상장 전일, 당일) 정보들이 담긴 url들을 이용하여, 공모주 투자에 도움이 되는 정보들을 가져오면 된다. [공모주 알리미 개발] 2-3. 38커뮤니케이션 크롤링 : 종목별 url 추출하기(수정) 저번 글 이후, 두 달이 넘어서 다시 공모주 알리미 개발 포스팅을 하게 됐다. 개발은 열심히 해서 약 30명에게 서비스 중이다. 개발할 때 그때그때 글을 썼으면 더 좋았으련만.ㅎㅎ 글 쓰는데 시 hzoo.tistory.com ipostock에서 1차적으로 정보를 가져오지만 ipostock에서 가끔 늦게 업데이트되는 이유로 38 커뮤니케이션을 크롤링하기 때문에, 전체 정보가 아닌, 필요한 정보만 가져오면 된다. 청약 일정(특히 상..

[공모주 알리미 개발] 2-3. 38커뮤니케이션 크롤링 : 종목별 url 추출하기(수정)

저번 글 이후, 두 달이 넘어서 다시 공모주 알리미 개발 포스팅을 하게 됐다. 개발은 열심히 해서 약 30명에게 서비스 중이다. 개발할 때 그때그때 글을 썼으면 더 좋았으련만.ㅎㅎ 글 쓰는데 시간이 오래 걸리는 탓도 있고, 게으른것도 조금 있고.. 그래서 어느 정도 구현이 된 상황에서 글을 다시 쓰려고 한다. 저번 글 회고와 같이, 확장성 면에서 매우 좋지 않은 코드를 짰기 때문에 다시 작성하였다. 2달 전과 비교해서 전체적으로 리팩토링을 하여서, 클래스 전체 구조를 적기엔 너무 길 것 같아 여러 메서드들을 풀어서 그냥 쓰려고 한다. 아래 더보기는 소스코드이다. 더보기 import requests from enum import IntEnum from datetime import datetime from ..

[Errno 110] Connection timed out - proxy 설정하기(해결)

공모주 알리미 기능 업데이트를 위해, 38커뮤니케이션 크롤링 코드를 실컷 짜고 로컬에서도 테스트를 마쳤다. 기분 좋게 heroku에 deploy 하고 코드를 실행하니 웬걸, 안된다. 로컬에서는 문제없이 38커뮤니케이션에 get 방식으로 html 코드를 얻어올 수 있었는데, heroku 서버에서는 계속 못 받아오는 상황이 생겨서 4일째 해결방안을 찾고 있다. 크롤링하려는 url은, http://www.38.co.kr/html/fund/index.htm?o=k 이다. 로컬에서는 되는데 서버에서만 안되니까 너무 짜증이 난다..... 휴..😰 heroku server ip가 38 커뮤니티 측 화이트 리스트에 존재하지 않아서, 즉 ip 문제라고 여러 번의 구글링 결과가 말해 줬다. 아래 질문에서 나랑 똑같은 문제..

Trouble Shooting 2021.11.17

[Tistory API] 글 목록, 카테고리 목록 가져오기 및 글 작성하기 (python)

공모주 청약, 상장 정보를 상세하게 블로그에 작성한 후, 해당 글 정보를 가져오기 위해 위 3가지 API 기능을 이용하였다. 결과적으로, 글 작성 이후 response로 글 정보가 return 되므로 글 목록을 받아오는 API는 사용할 필요 없어졌지만, 그래도 찾아본 겸 묶어서 올리려고 한다. 아래 내용들에서 get_access_token() 으로 액세스 토큰을 가져오는 과정은, 아래 글에서 확인할 수 있다. [Tistory API] 셀레니움, 정규표현식을 사용하여 티스토리 Access Token 발급하기(python) 사이드 프로젝트 : 공모주 알리미의 카카오톡 어플리케이션 사이트 도메인을 티스토리로 구성하기 위해, 티스토리 API를 활용하게 되었다. 아침부터 많은 구글링을 하며 삽질해서, python..

API/Tistory 2021.10.08

[Telegram Bot API] 1. Bot 생성 및 API Key, Bot id 얻기(python)

카카오톡으로 공모주 정보를 전달하려는데, 너무 제약이 많다. 카카오톡 채널을 생성하고 친구 추가한 모두에게 메시지를 전송하려면 건당 금액이 들고, 친구에게 보내는 API는 너무 제한적이어서(친구가 KaKao Developers 가입 및 애플리케이션에 가입) 사용이 불가능한 API이기 때문에, openCV를 이용하여 화면을 제어하여 자동화 하려고 했으나 로컬이 아닌 서버에서 했을 때 자동화가 불가능할 것 같아서, 텔레그램, 슬랙 중 먼저 텔레그램 봇을 생성하려고 한다. 1. 텔레그램에서 봇 생성 후 API Key 발급하기 더보기 web, app 상관 없이, 'botFather'를 검색해서, 녹색 체크박스가 아닌 파랑 체크가 붙은 아이디를 더블 클릭하여 대화를 시작하고, START 버튼을 누르면 위와 같이 ..

API/Telegram 2021.10.03

[Tistory API] 셀레니움, 정규표현식을 사용하여 티스토리 Access Token 발급하기(python)

사이드 프로젝트 : 공모주 알리미의 카카오톡 어플리케이션 사이트 도메인을 티스토리로 구성하기 위해, 티스토리 API를 활용하게 되었다. 아침부터 많은 구글링을 하며 삽질해서, python 코드로 자동화 하도록 만들었다. 글에 오류가 났던 원인들 및 해결하지 못했지만 대체 방안들을 제시해두려고 한다. 오류가 될만한 원인들은 주의1 주의2 와 같이 주황색 배경색으로 적어두고, 맨 아래에도 적어두려고 한다. 오늘안에 공모주 알리미 배포를 하려고 했지만 직접 코드들을 수정하느라(적절한 reference들을 한번에 못 찾아서 그런 거겠지만) 시간이 꽤 오래걸려서 미뤄질 것 같다. 그래도 오늘 API Key, Token 발급에 있어서 눈을 꽤 뜬것 같아서 기분이 좋다. 아마 티스토리 Acceess Token을 발급..

API/Tistory 2021.09.27

[프로그래머스] 위클리 챌린지 7주차(python)

[문제 설명] 코딩테스트 연습 - 7주차 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr [나의 답안] def solution(enter, leave): answer_dict = {person: 0 for person in enter} num_person = len(enter) for i in range(1, num_person + 1): for j in range(i + 1, num_person + 1): person1 = leave[-i] person2 = leave[-j] if enter.index(person1) < enter.i..

[프로그래머스] 위클리 챌린지 6주차 : 복서 정렬하기(python)

[문제 설명] 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr [나의 답안] def solution(weights, head2head): WEIGHT = 0 WIN_COUNT = 1 WIN_COUNT_OW = 2 boxer_info_dict = {num: [weight] for num, weight in enumerate(weights)} for i, record in enumerate(head2head): record = list(record) win_count..

[프로그래머스] 위클리 챌린지 5주차 : 모음사전(python)

[문제 설명] 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr [나의 답안] def calculate_diff(char): if char == 'A': return 0 elif char == 'E': return 1 elif char == 'I': return 2 elif char == 'O': return 3 elif char == 'U': return 4 def solution(word): char_diff_list = [] digit_coefficie..