vscode를 사용할 때에는 파일을 분리하여서 관리를 하고 import로 쉽게 사용을 해었습니다. 그런데 주피터 노트북을 사용하다보니 .ipynb 파일을 다시 .py 파일로 만들어서 사용하는 방식으로 사용했었는데요. 찾아보니 .ipynb 파일 역시 import 하는 방법이 있었습니다. 먼저 pip install import_ipynb를 해주세요. 그 다음 jupyter notebook 주피터 노트북에서 내가 필요한 파일을 import 해줍니다. test.ipynb에 my_math.ipynb 파일을 import 해보겠습니다. my_math.ipynb 에는 sum 함수를 하나 추가해두었습니다. 그러면 이제 내가 원하는 파일에 ipynb 파일을 import 해보겠습니다. 먼저 import import_ipyn..
우리는 웹사이트를 이용하다 보면 경고창 Alert를 볼 수 있습니다. 만약 내가 원하는 자동화를 만들고 싶은데 이러한 경고창이 뜨게 되면 에러가 발생하면서 더 이상 진행이 불가능하게 됩니다. 파이썬 셀레니움을 이용하면 이 경고창 alert를 처리할 수 있습니다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC 먼저 경고창처리를 위해서는 WebDriverWait,와 expected_co..
셀레니움을 이용해서 웹브라우저 자동화를 만들때에 예상치 못합 팝업창이 떠서 내가 생각한 자동화 로직이 깨질때가 있습니다. 이럴 때는 팝업창을 감지해서 팝업창을 닫아줘야 합니다. 요즘은 팝업창이 자주 발생하지는 않지만 새로운 팝업창 감지는 WebDriverWait와 expected_conditions를 통해서 알 수 있습니다. 해당 기능을 통해서 페이지의 로딩, 경고창 등 역시 감지 할 수 있습니다. 먼저 새로운 팝업을 알아내려면 이전까지의 브라우저 handles을 알아야 합니다. 팝업이란 것 역시 새로운 창 handle이기 때문입니다. browser = webdriver.Chrome(ChromeDriverManager().install()) tabs = browser.window_handles 이렇게 하..
일반적으로 기록을 남기지 않기 위해서 시크릿모드를 사용하곤 합니다. 자동화 기능을 만들때에도 혹시 모르니 시크릿모드로 실행을 시켜 줍시다. 파이썬 셀레니움에서 크롬, 파이어폭스 사용시 시크릿모드, 사생활 보호 창 키는 법입니다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.firefox import GeckoDriverManager 먼저 셀레니움과 웹드라이버를 import합니다. 파이어폭스 브라우저를 실행하려면 GeckoDriverManager가 필요합니다. chrome_options = Options() chrome_options.add_argumen..
카카오 API중에 OCR API가 있다고 해서 한 번 사용해봤습니다. 캡챠문자도 인식이 가능한지 궁금해서 한 번 테스트를 해보았는데요. 역시 가공되지 않은 이미지다 보니 인식은 제대로 안되더라구요. API문서에 있는 예제코드 내용 살펴보겠습니다. 카카오 비전 API에서는 다양한 기능을 제공하고 있으니 필요한 기능을 가져다 쓸 수 있을듯 하면 한번 사용해보세요. 기능으로는 얼굴검출, 상품검출, 성인 이미지 판별, 썸너엘 생성, 썸네일 검출, 멀티 태그 생성, OCR이 있습니다. OCR OCR은 Optical Character Recognition 이라고 합니다. 이미지에서 문자를 판단하여 추출 한 후 텍스트 형식으로 변환시켜주는 기능합니다. 이렇게 이미지 속에 있는 문자를 인식하는 기능을 말합니다. 카카오..
기존에는 비쥬얼 스튜디오 코드를 사용을 했었는데요. 파이썬이나, 텐서플로등 강의를 보니 주피터 노트북, 코랩등을 이용해서 많이들 개발하는걸 보았습니다. 결과, 이미지 등을 바로바로 볼 수도 있고 편해보이더라구요. 그래서 최근에 아나콘다3 설치로 주피터 노트북을 사용해봤는데요. 오늘은 설치 방법을 알아보겠습니다. 먼저 구글에서 anaconda install을 검색합니다. 다운로드 버튼을 눌러서 페이지 이동을합니다. Anaconda Installers 항목입니다. 해당 피시에 맞는 OS로 설치하시면 됩니다. 저는 맥, 윈도우 둘다 설치를 했습니다. 먼저 맥입니다. 맥은 별다른 설정없이 계속 해주시면 설치가 완료 됩니다. 윈도우의 경우 아나콘다3 설치시 체크를 해주어야 하는 부분이 있습니다. 먼저 Just M..
파이썬에서 정렬은 sort, sorted 함수를 통해서 할 수 있습니다. 리스트의 경우 sort 메소드를 가지고 있습니다. 정렬함수를 내부에 가지고 있지 않더라도 sorted 함수를 통해서 정렬을 할 수 있습니다. 정렬을 위한 자료구조로는 list(리스트), Dictionary(딕셔너리) 를 이용하겠습니다. 리스트의 경우 sort정렬 메소드를 가지고 있으며, 딕셔너리의 경우는 파이썬 정렬함수인 sorted를 이용해서 정렬해주어야 합니다. list.sort() 리스트 정렬하기 파이썬 list(리스트)의 경우에는 이미 정렬함수가 내부에 구현이 되어있습니다. 호출방법은 list.sort()입니다. 간단한 오름차순, 내림차순 정렬은 바로 할 수 있습니다. myList = [3, 2, 1, 5, 4] print(..
지난번에 파이썬을 이용해서 간단하게 텔레그램 채팅봇을 만드는 방법을 알아봤습니다. 봇생성과 메시지 받는거까지는 정말 간단합니다. 봇의 로직은 MessageLoop에서 돌아갈 handel함수에서 제어를 하기 때문에 정말 특별한 기능이 아니라면 텔레그램 봇 기능보다는 파이썬 로직을 아마 더 신경 써야할 것으로 보입니다. 다만 telepot에 아마 좀더 편리한 기능들이 숨어있다고는 생각합니다. 그래서 오늘은 telepot에 이미 만들어져있는 기능을 이용해서 텔레그램 채팅창에 GUI메뉴를 만들어 볼까 합니다. 저는 현재 알림봇을 만들고 있는데요. 채팅으로 메뉴를 제어하지 않고 메뉴 버튼을 이용해서 사용하고 있습니다. 뭐가 더 편리 한지는 아직 잘 모르겠습니다. 괜히 UX가 중요한게 아닌거 같다는 생각이 드네요...
요즘 웹 크롤링 할 데이터가 생겨서 어떻게 이용하면 될까 고민하고 있었습니다. 지난 번에 웹 스크래핑을 하는 것에 대해 공부했었는데, 드디어 실제로 써먹게 되었습니다. 필요한 기능은 원하는 데이터를 긁어서 있을경우에 알림을 받고 싶었습니다. 그래서 카카오톡 봇 채팅을 만들어서 하려고했는데, 불편하다는 의견이 있었고, 결국 텔레그램 봇을 한 번 만들어 보기로 했습니다. 먼저 텔레그램 봇 만들기 시작은 아주 간단합니다. 우선 텔레그랩 앱 설치를 하셔야합니다. 모바일, 데스크톱 상관없습니다. 다만 바로바로 확인을 하려면 데스크톱으로 옆에 켜두시는게 좋을듯 합니다. 그 다음 채팅창에 botfather를 검색하면 텔레그램 정식 채팅봇이 있습니다. 말을 걸어 줍니다. 새로운 채팅봇을 만들려면 아빠봇에게 문의를 해야..
OPEN DART API 중 하나인 지분공시 관련 데이터를 받아 보겠습니다. 전자 공시 데이터를 받아서 분석을 하려면 먼저 데이터를 해석하는 법을 알아야하는데요. 아직 이 부분이 미흡해서 데이터를 받은 후 추후에 보기 좋게 변경해야 할 듯 합니다. 우선 .csv 파일로 저장까지만 해보겠습니다. Open Dart Api를 사용하여 만들어 보고 추후에 합쳐서 하나의 툴로서 사용할 수 있는게 목표입니다. 임원, 주요주주 특정 증권등 소유상황 보고서 먼저 임원, 주요주주 소유보고는 전자공시 사이트에서 지분공시 탭의 임원, 주요주주 특정 증권등 소유상황 보고서의 내용입니다. 테스트로는 삼성전자 코드를 이용했습니다. 전자공시 사이트에서 지분공시를 선택 한 후 아래에 원하는 사항을 체크하고 검색을 합니다. 사진처럼 ..
전사공시 크롤링을 해보면서 공부를 하려고 했었습니다. 그런데 전자공시의 경우 open api가 제공되어있더라구요. API 호출 제한은 1일 1만회로 제한이 되어있습니다. 그래도 api가 제공되는 굳이 스크래핑을 할 필요는 없을거 같아서 api를 이용해서 한 번 공부해보도록 하겠습니다. OPEN DART 인증키 발급 먼저 api 사용을 하려면 인증키를 발급받아야 합니다. OPEN DART 전자공시 오픈 API 해당 OPEN DART 사이트에 들어가서 인증키 신청을 합시다. 방법은 간단합니다. 인증키 신청만 하면 발급이 됩니다. 인증키 신청을 눌러서 키를 발급받아봅시다. 인증키 발급 후 오픈 API 이용현황을 보면 일일 이용 현황을 볼 수 있습니다. api를 호출할 때 마다 호출건수가 카운팅됩니다. 개발가이..
노마드 코더에서 Python을 이용한 웹 스크래퍼를 만드는 강의를 듣고 있습니다. 웹 페이지에 있는 HTML 코드에서 정보를 가져올 때에 BeautifulSoup을 사용해봤습니다. 저도 수업 강의 내용과 문서를 보면서 해보았습니다. BeautifulSoup? BeautifulSoup은 HTML 과 XML 문서를 분석 할 수 있는 Python 패키지 입니다. HTML 에서 데이터를 추출하여 사용할 수 있기 때문에 웹 스크래핑에 유용합니다. 웹 스크래핑과 웹 크롤링에 대해서 개념이 명확하지 않으시다면 아래 링크 참고 해주세요. 전체 함수는 BeautifulSoup 문서를 참고해주세요. [공부/Python] - Python 웹 스크래핑, 크롤링? 정체가 뭐냐 개념 잡기 Python 웹 스크래핑 먼저 웹스크래핑..