비트코인 픽 사이트와 연동해서 텔레그램 알림을 주는 프로그램을 개발했습니다

프로그래밍/Python 2021. 10. 11. 02:16

비트코인 종목 추천 사이트와 연동하여 종목 추천이 이루어지는 오전 12:20, 오전 9시 정해진 시간에 따라 사이트에서 데이터를 가져와서 텔레그램으로 알림을 주는 프로그램입니다. 원래는 시간당 n만원씩 받고 외주 받는 형태로 진행하는데 같이 투자 진행하시는 분이 수익 내는데 도움도 많이 주시고 하셔서 특별히 공짜로 만들어드렸습니다 ㅎㅎ 원리는 간단하게 사이트에 자동으로 로그인한뒤 일정시간마다 requests를 보내고 나오는 response를 정리해서 Telegram 봇에 채팅을 보내도록 시키는 형태입니다. 일정시간마다 실행하는건 집에 24시간 돌아가는 저전력 NAS서버 시놀로지 작업 스케줄러를 이용해서 실행합니다. 아무래도 시놀로지가 리눅스 기반이라 크롬 드라이버는 사용이 안되서 Python의 reque..

Article Thumbnail
[Python] smi 자막 특정 위치부터 싱크 조절하기

프로그래밍/Python 2021. 9. 22. 02:00

from easysmi import * #단일 파일 처리 folder = 'C:/자막/' filename = '[SubsPlease] Tokyo Revengers - 02 (1080p) [B66CEAA7].smi' p = parse_smi(folder + filename) search_line = find_line_by_text(p, "sub by") if search_line != -1: s = sync_shift(p, search_line, -10000) s = sync_shift(s, 0, 1300) make_dirs(folder + 'output') #make output folder new_path = folder + "output/" + filename file_save(new_path, s)..

Article Thumbnail
[Python] 인코딩 오류 없이 텍스트 파일 읽기

프로그래밍/Python 2021. 9. 17. 20:57

def read_file(path): f = open(path, "r") line = f.readline() data = "" while line: data += line line = f.readline() f.close() return data smi 자막 파일을 열어서 싱크 조절을 위해 다음과 같이 코딩하고 즐거운 마음으로 실행을 하였습니다. UnicodeDecodeError: 'cp949' codec can't decode byte 0x01 in position 1: illegal multibyte sequence 어김없이 등장하는 오류.. 인터넷에 검색해보니 수많은 예제가 뜨네요. 인코딩이 안 맞아서 안 열리나 봅니다. 파이썬은 기본적으로 파일이 ANSI로 작성되었다고 가정하고 cp949라는 코덱..

Article Thumbnail
[Python] 가상화폐 트레이딩 봇 제작중

프로그래밍/Python 2021. 8. 31. 02:47

요즘 아는 분들과 파이썬을 이용해 가상화폐 트레이딩 봇 프로젝트를 진행중입니다. 차트좀 볼줄 아시는분 + 컴퓨터 공학과 학부생분과 같이 수익률을 위해 프로젝트를 진행하고 있습니다. 우선 전략은 변동성 돌파 + ma N일선 돌파를 기반으로 하여 공포/탐욕 수치, 시가총액, 온체인 지표 등 다양한 보조지표로 정확도를 올려볼 생각입니다. 사실 이걸 만들게 된게 API 지수로 가상화폐 픽을 제공하는 사이트가 있던데 사용하신 분에 따르면 이게 적중률이 높은 편이라고 해서 어떤식으로 작동하는지 궁금해서 제작을 시작하게 되었습니다~ 끝까지 잘 마칠 수 있을진 모르겠지만 변동성 돌파가 과연 유의미한 결과를 가져다줄지도 궁금하네요 ^^

Article Thumbnail
[Python] 구글 코랩(Google Colaboratory)에서 Selenium 사용하기

프로그래밍/Python 2021. 8. 31. 01:27

안녕하세요 파일입니다. 오늘은 Google Colab에서 Selenium을 사용하는 방법에 대해 포스팅 하겠습니다. 구글 코랩은 Jupyter NoteBook과 비슷한 방식으로 실행되는데 저도 정확하게 아는 것은 아니지만, 서버가 실행되서 그 웹페이지에서 코딩을 하고 거기서 코딩을 하면 서버가 커널을 실행해 코드를 연산합니다. 참고 : https://tobefreein2040.tistory.com/10 3. Jupyter Notebook 안녕하세요. 자꿈두입니다. 오늘 공부할 내용은 Jupyter Notebook입니다. Jupyter Notebook? Anaconda를 설치하게 되면 자동으로 설치되는 응용 프로그램중 하나입니다. Jupyter Notebook을 사용하게 되면요 1. 코 tobefreein..

Article Thumbnail
[Python] 문제 풀이 코드 저장용

프로그래밍/Python 2021. 5. 8. 19:25

#------------------------------------ 2일차 # 연습문제 01 x = int(input("x: ")) y = int(input("y: ")) print("두수의 합:", x+y) print("두수의 차:", x-y) print("두수의 곱:", x*y) print("두수의 평균:", (x+y)/2) print("큰수: ", max(x,y)) print("작은수: ", min(x,y)) # 연습문제 02 r = int(input("r: ")) h = int(input("h: ")) print("원기둥의 부피:", 3.141592 * r**2 * h) # 연습문제 04 import math x1 = int(input("x1: ")) y1 = int(input("y1: ")) x..

[Python] 디시인사이드 갤러리 최신글 이미지 실시간 크롤링

프로그래밍/Python 2021. 5. 8. 18:57

import requests from bs4 import BeautifulSoup import time from os.path import getsize def image_download(BASE_URL): # 헤더 설정 (필요한 대부분의 정보 제공 -> Bot Block 회피) headers = { "Connection" : "keep-alive", "Cache-Control" : "max-age=0", "sec-ch-ua-mobile" : "?0", "DNT" : "1", "Upgrade-Insecure-Requests" : "1", "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Geck..

Article Thumbnail
[Python] LSTM 미래 주가 분석 참고글

프로그래밍/Python 2021. 2. 4. 23:36

www.youtube.com/watch?v=H6du_pfuznE LSTM을 이용해 주식 그래프의 경향성을 학습하고 다음 30일을 예측하는 코드입니다. (일단위 데이터 기준) 보통 인터넷에 LSTM을 이용해 비트코인이나 주식 그래프를 학습하는 코드들은 이전 데이터를 기준으로 하는 predict에 가까웠지만 이건 다음 50개의 경향성을 forecasting 하는 코드입니다. 아래의 영상은 간단하게 LSTM을 이해할 수 있는 참고 영상입니다. www.youtube.com/watch?v=sG_WeGbZ9A4&t=222s

Article Thumbnail
JupyterLab에서 사용자 지정 단축키 Keyboard ShortCuts 설정하기

프로그래밍/Python 2020. 12. 13. 01:58

Jupyter Notebook보다 진보한 Jupyter lab을 쓰면서 조금 불편한 점을 느꼈습니다. 원하는 키보드 단축키가 잘 작동하지 않았다는 점인데요. F2를 눌러서 파일이름을 바꾼다던가.. 현재 파일이름을 바꾼다던가 하는게 잘 안되더라구요. 인터넷에 있는 글들은 죄다 기본 단축키에 대한 정리지 설정하는 방법은 나와있지 않았습니다. 확인해보니 Jupyterlab 에서 따로 설정을 해줘야 하는것이였습니다. Jupyterlab에서 Settings -> Advanced Settings Editor로 이동해 오른쪽 Users Preferences 부분에 뭔가 적혀있으면 공란으로 만들고 아래처럼 Json 형식으로 작성해주시면 됩니다. { "shortcuts": [ { "command": "filebrowse..

Article Thumbnail
네이버 웹툰 다운로더 v3 (Naver_Webtoon_Downloader) / 초고속 다운로드 지원

프로그래밍/Python 2020. 11. 15. 18:53

Python으로 제작된 웹툰 다운로더입니다. 만든진 꽤 됬는데 웹툰들 유료화 소식을 듣고 생각나서 조금 다듬었습니다. 버그가 있어서 수정하고 성인웹툰까지 다운로드 가능하게 패치했습니다. 문제 있을시 자삭하겠습니다. 메일로 질문사항 보내는 분들이 많은데 피드백은 댓글만 받으려고 합니다. 댓글로 문의사항 남겨주세요. 특징 - DOS 형식의 간결한 디자인 - 병렬처리를 통한 초고속 다운로드 지원(인터넷 상태에 따라 다를 수 있음) => 전편 아카이브 용으로 사용시 매우 빠르고 쉽게 받을 수 있습니다. 사용 방법 1. 파일 압축 해제 후 경로의 NWebtoon.exe 를 실행해주세요. 실행이 되었으면 d를 입력해 다운로드 모드로 진입합니다. (정렬에 문제가 발생해서 현재 이미지 합치기 기능은 비활성화 되어있습니..

Article Thumbnail
[Python] 폴더 특수문자 제거 및 HTML 태그 제거 함수

프로그래밍/Python 2020. 11. 13. 20:15

# 경로 금지 문자 제거, HTML문자 제거 def filename_remover(string): cleaner = re.compile('|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});') #,   등등 제거 string = re.sub(cleaner, '', string) while(string[-1] == '.'): string = string[:-1] #끝에 . 제거 ex) test... -> test non_directory_letter = ['/', ':', '*', '?', '', '|'] #경로 금지 문자열 제거 for str_ in non_directory_letter: if str_ in string: string = string.replace(str_..

Article Thumbnail
[Python] 엑셀파일 인덱스 차례대로 Pandas로 읽어오기

프로그래밍/Python 2020. 8. 27. 19:12

파이썬에서 엑셀 파일을 불러오기 위해 OpenPyxl 를 써봤으나 처리 속도가 너무 느렸습니다. 대안을 찾아보다가 pandas 가 괜찮은 성능을 보여줘서 엑셀파일을 읽는 간단한 예제를 남겨봅니다. pip install pandas 우선 엑셀파일을 읽어오기 위해선 pandas 라이브러리가 필요합니다. 다음 명령어를 입력하여 설치해줍니다. import pandas as pd try: #dtype=str -> 문자열 취급 -> 010 표시 df = pd.read_excel('example.xlsx', sheet_name = 'data', dtype=str) for i in df.index: #엑셀의 인덱스 수만큼 반복한다. name = df.loc[i, '이름'] #현재 인덱스의 이름을 가져온다 phone_n..

Article Thumbnail
[Python] PushBullet으로 SMS 전송하기

프로그래밍/Python 2020. 8. 19. 22:03

Pushbullet API를 이용하면 손쉽게 SMS를 전송할 수 있습니다. 단 사용을 위해서 PushBullet 어플이 스마트폰에 깔려있어야 하고 PushBullet 어플에 신호를 주면 PushBullet 어플이 SMS를 그 스마트폰으로 직접 보내는 방식입니다. 이 PushBullet 어플에 신호를 주는걸 Python을 통해 구현해보겠습니다. PushBullet 사이트에서도 API 사용법을 친절하게 지원하나 더 쉽게 하는 방법은 Python에 PushBullet 라이브러리를 이용하는 방법입니다. pip install pushbullet.py 다음 명령어를 통해 PushBullet 라이브러리를 설치합니다. 사용방법은 이곳에 자세히 설명되어 있습니다. 당연히 여러가지가 가능하나 이 글에선 SMS 전송방법만을..

Article Thumbnail
[Python] Blynklib 로컬 서버 연결하기

프로그래밍/Python 2020. 3. 15. 19:20

import blynklib # initialize Blynk blynk = blynklib.Blynk(BLYNK_AUTH, server='YOUR_IP_HERE', # set server address port=8080, # set server port heartbeat=30, # set heartbeat to 30 secs #log=print # use print function for debug logging ) BlynkLib으로 Blynk 로컬 서버를 연결할땐 다음과 같은 방법을 사용합니다. 기존 선언 blynk = blynklib.Blynk(AUTH_TOKEN) 을 위와 같은 형태로 바꿔주어야 합니다. AuthToken을 제대로 적어줬어도 저것이 제대로 선언되지 않았으면 로컬 서버와 Auth_..

[Python] Mnist 데이터를 이용한 인공신경망 손글씨 인식

프로그래밍/Python 2020. 1. 16. 19:33

import numpy as np #행렬사용 import matplotlib.pyplot import scipy.special %matplotlib inline #AI Class class neuralNetWork: #신경망 초기화 def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate): # 입력, 은닉, 출력 게층의 노드 개수 설정 self.inodes = input_nodes self.hnodes = hidden_nodes self.onodes = output_nodes #학습률 self.lr = learning_rate #가중치 행렬 생성 (랜덤값 -0.5 ~ +0.5) self.wih = (np.random.rand(s..

Article Thumbnail
[Python] Requests 와 Fiddler 동시에 이용하기

프로그래밍/Python 2019. 12. 1. 21:15

피들러가 켜져 있는 상태에서 https 규약 사이트를 Requests로 Post() Get()을 하려고 하면 오류가 납니다. SSL 인증서(보안 문제)와 연관이 있는거 같은데요. 피들러에서 인증서를 내보낼 수 있는데 이를 활용하여 해결할 수 있습니다. 1. Tools - Options 로 이동합니다. 2. Decrypt HTTPS traffic 가 체크가 안 돼있다면 체크하고 인증서를 설치해줍니다. 3. Actions - Export Root Certificate to Desktop을 통해 인증서 파일을 내보냅니다. 이후 바탕화면에 FiddlerRoot.cer 파일이 생성되었다면 성공입니다. 4. https://sourceforge.net/projects/openssl/ OpenSSL Download O..

Article Thumbnail
[Python] 리로스쿨 로그인 + 내신 가져오기

프로그래밍/Python 2019. 11. 29. 15:20

from bs4 import BeautifulSoup import requests import operator import re import os print('------ 리로스쿨 내신 평균 산출기 ------') print('예체능은 집계에서 제외됩니다') print('1학년 20% (학기당 10%), 2학년 30%(학기당 15%)') print('3학년 1학기 50% 로 계산합니다.') print('제작 - File(pgh268400@naver.com)') print('-------------------------------------') #ID, PW 입력 #id = os.getenv("USER_ID") #pw = os.getenv("USER_PASSWORD") id = "" pw = "" # 사이..

Article Thumbnail
[Python] 정적분과 지니 계수 구하기

프로그래밍/Python 2019. 11. 17. 19:26

지니계수는 소득 불평등 정도를 나타내는 소득분배 지표입니다. 지니계수는 0~1 사이의 값을 갖고 로렌츠 곡선을 이용해 구할 수 있습니다 소득 분배율이 일정할때 로렌츠 곡선은 y=x 와 일치하게 되고 이때의 직선을 완전평등 대각선이라고 합니다. $$2\int_0^1 \sin x-L(x)~dx$$ 지니계수의 정의는 위와 같습니다. 이를 이용해 프로그램을 작성해보았습니다. $L(x)$는 로렌츠 함수입니다. from sympy import Integral, Symbol x = Symbol('x') #x의 문자 변수화 Lx = 0.7 * x**2 + 0.3 * x f = x result = Integral(f = Lx, (x,0,1)).doit() #0부터 1까지 정적분 print('지니 계수 : ', 2 * r..

Article Thumbnail
[Python] 로또 회차별 당첨번호 분석

프로그래밍/Python 2019. 11. 17. 19:04

import openpyxl import numpy as np import matplotlib.pyplot as plt #로또 번호 담는 리스트 l = [] # 엑셀파일 열기 wb = openpyxl.load_workbook('lotto.xlsx') # 현재 Active Sheet 얻기 ws = wb.active # 당첨번호 읽기 (보너스 번호는 제외함) for r in ws.rows: row_index = r[0].row if row_index > 3: n1 = r[13].value n2 = r[14].value n3 = r[15].value n4 = r[16].value n5 = r[17].value n6 = r[18].value l.append(n1) l.append(n2) l.append(n3) ..

Article Thumbnail