Beautiful Soup이란? Beautiful Soup는 HTML 및 XML 문서를 파싱하기 위한 파이썬 라이브러리(Python Library)입니다. 웹 스크래핑(Web Scraping)에 사용되며, 복잡하고 비정형적인 웹 페이지로부터 필요한 데이터를 빠르고 쉽게 추출하는 것을 도와주고 있습니다. Beautiful Soup 예제 from bs4 import BeautifulSoup import requests # 스크래핑할 URL url = "https://needjarvis.tistory.com/802" # 해당 url에 연결한 후 HTML 내용을 가져옵니다. response = requests.get(url) html_content = response.text print(html_content)..
주피터 노트북(Jupyter Notebook)으로 간단하게 프로그램을 돌릴 때, 평상시에는 문제가 없지만 용량이 큰 것을 돌리기 위해서 C가 아니라 다른 드라이브로 돌려야 되는 경우가 종종 있습니다. 이럴 때에는 드라이브를 변경해야 하는데요 주피터의 드라이브를 변경하는 법을 포스팅 하도록 하겠습니다. 주피터 노트북 환경설정 생성 우선 드라이브를 변경하기 위해서는 주피터 환경설정 파일을 만들어야 합니다. (kogpt) C:\Users\user>jupyter notebook --generate-config Writing default config to: C:\Users\user\.jupyter\jupyter_notebook_config.py 위와 같이 jupyter notebook --generate-con..
파이썬은 datetime과 time이라는 라이브러리를 제공하며, 이 값을 활용하여 날짜의 값을 분리하거나 N일을 기준으로 이후 이전, 이후 등을 구할 수 있다. import 라이브러리 import datetime as dt import time as tm datetime과 time 라이브러리를 호출한다. time과 dateime 사용 print(tm.time()) # 1647013868.527883 tm객체의 time 펑션을 호출하면, 시스템 타임(컴퓨터가 인식하는 시간, timestamp)이 찍힌다. 이 값을 이제 날짜 포맷으로 세팅한다. now = dt.datetime.fromtimestamp(tm.time()) print(now) # 2022-03-12 00:51:08.527909 datetime에..
콘다 패키지가 오래되어서 더이상 사용하기 힘들 경우 콘다 자체를 업데이트 시켜야 될 것이다. 명령어 conda update -n base conda 위와 같이 명령어를 실행하면 conda의 코어가 업데이트 된다. 실행과정 (base) Jinhooui-MacBook-Pro:~ stevejang$ conda update -n base conda Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /Users/stevejang/opt/anaconda3 added / updated specs: - conda The following packa..
엑셀을 쉽게 읽는 방법으로 판다스(Pandas)를 활용하는 방법도 있지만, OpenPyXL을 사용하여 엑셀을 디테일하게 컨트롤 할 수 있다. 테스트에 사용한 엑셀 키움증권과 카카오에 있는 FAQ 내용을 몇개 가져와서 2개의 sheet를 만든 구조이며 컬럼은 질문과 답변으로 되어 있는 구조이다. 모든 데이터 읽어오기 import openpyxl as xl wb = xl.load_workbook('C:/Project/steel/faq.xlsx') for sheet_nm in wb.sheetnames: print('*' * 100) print('시트명:', sheet_nm) sheet = wb[sheet_nm] for row_data in sheet.iter_rows(min_row=1):# min_row는 시..
파이썬은 아직 언어가 완벽하지 않은 프로그램 언어이다. 그러다보니 버전업이 될때마다 개발에 대해서 호환이 잘 안되는 경우가 많고, 이는 파이썬 자체뿐만 아니라 라이브러리들도 그러하다. 텐서플로우(Tensorflow)를 하나 예로 들면 이제 나온지 5년도 안된 라이브러리, 프레임워크지만 버전간 호환이 안되는 경우가 허다하고, 이는 곧 특정 버전에 정체 되는 문제를 만든다. 파이썬이란 언어가 개발자보다는 연구원과 같은 비개발자들이 좀 더 선호하는 경향이 많아서 그런지 코딩하는 방식도 워낙 천차만별이고, 서비스에 접목시키기 상당히 어려운 예제들이 많다. 자바 개발자는 gradle이나 maven과 같은 빌드툴로 동일한 환경에서 개발을 매우 쉽게 할 수 있으며, war나 jar안에 패키지로 묶어서 실행하는 할 수..
필자는 아나콘다(Anaconda)를 선호하기 때문에 가상환경도 폴더 형태로 만들지 않고 아나콘다에서 가상환경을 생성하여 연결하는 것을 선호한다. 이 포스팅은 새로운 아나콘다 가상환경 상태에서 주피터를 연결하는 방법을 진행하려 한다. 물론 이 방식은 아나콘다 가상환경이 아니라 폴더별 가상환경도 설정이 가능하니 본인의 상황에 맞게 환경을 추가하면 될 것이다. 주피터로 새로운 notebook을 만드려고 하지만, 가상환경을 설정하는 메뉴가 존재하지 않는다. 일단 Python 3로 생성 후, Kernel 메뉴에서 Change Kernel을 하지만 보다시피 주피터에서 다른 가상환경을 못불러들이고 있다. 필자는 주피터로 코딩을 하는 것을 좋아하지 않기 때문에 사실 필요성을 못느꼈지만 최근 내부 공유자료를 만들기 위해..
파이썬을 하는 사람들이라면 필수적인 라이브러리인 판다스(Pandas)는 다양한 데이터의 핸들링이 가능한데 자바 개발자라면 기겁을 할만큼(대다수 파이썬 라이브러리들이 대개 그렇지만) 사용방법이 매우 쉽다. 각자 엑셀 데이터가 있겠지만, 혹시나 원활한 실습을 원하는 분들도 있을테니 그런 분들은 아래의 엑셀 파일을 다운로드 하면 된다. 키움증권과 카카오뱅크 FAQ 위 파일은 아래와 같이 2개의 시트(Sheet)로 구성되어 있고, 첫번째 시트는 4개의 키움증권 FAQ 데이터, 두번째 시트는 2개의 카카오뱅크 FAQ 데이터이다. 데이터구조 엑셀 읽기 코드 import pandas as pd excel_data = pd.read_excel('c:/project/faq.xlsx') # print를 하면, sheet ..
기존에 작성했던 아나콘다 설치 방법이 변경돼서 빠르게 재포스팅을 하고자 한다. 변경된 아나콘다 내 기억이 정확한지는 모르겠지만, 기존에 아나콘다는 선택하는 것이 많지 않았다. 마치 완벽한 오픈소스처럼 보였고 상업 라이센스가 존재하지 않는 것마냥 보였던 것으로 기억한다. 그러나 엘라스틱도 그렇고 아나콘다 역시나 최근 들어서 라이센스가 다양화 되었기 때문에 함부로 설치하면 안될 것으로 보인다. https://www.anaconda.com/products/individual 아나콘다의 제품은 현재, 개인, 팀에디션, 엔터프라이즈 에디션, 프로페셔널 서비스로 나뉘며 무료로 쓰는 제품은 individual(개인) 제품을 선택하면 된다. 위 링크는 개인 제품 링크이니 들어가서 다운로드 받으면 된다. 본인의 OS와 ..
케라스(Keras)와 텐서플로우(Tensorflow)로 구현한 시퀀스투시퀀스(Seq2Seq) 모델로 챗봇을 구현하고 있는데 예전 tensorflow에서는 Java에서 tensorflow를 지원해서 호출하였지만 현재 tensorflow 2.0은 Java에서 호출이 지원되지 않는다. 이를 해결하기 위해 자바에서 모델을 호출하는 방식이 아닌 python에서 자체적으로 웹서버를 띄우기로 하였고, Flask 라이브러리를 사용하였다. 라이브러리설치와 선언 > pip install flask-restful (python) E:\Project\universe\source-python>pip install flask-restful Collecting flask-restful Downloading Flask_RESTful..
프로그램을 짜게 되면, 참(True) 혹은 거짓(False)과 같은 값을 자주 활용하게 됩니다. 이러한 값 혹은 형태를 불리언(Boolean) 혹은 불(Bool)이라고 합니다. 참과 거짓 값을 IF 조건절에 활용하게 되면, 프로그램을 분기처리할 수 있습니다. IF조건은 For 반복문과 함께 가장 많이 활용이 되며, 이 2가지만 알아도 간단한 프로그래밍은 문제없이 만들 수 있습니다. 사실 프로그램이라 하면, IF조건과 For문의 심화과정(?)이라고 생각해도 제 개인적인 생각으로는 크게 다르지 않는 것 같네요. Bool 형 예제 12345678910111213141516171819202122>>> apple = True; # 사과가 있다>>> orange = False; # 오렌지는 없다>>> orangeF..
본 포스팅은 개발자가 아닌 비개발자분들도 포함하여 진행되는 강의입니다. 그러다보니 개발자분들은 너무 쉬운것을 왜 저렇게 많이 설명하지?라는 생각을 가질 수 있는 점 미리 양해 바랍니다. 현재 파이썬을 다루는 사람들을 보면 개발자분들도 물론 많지만 데이터 분석이나 통계 등을 하기 위해서 다루는 분들 그리고 최근에는 텐서플로우같은 머신러닝, 딥러닝등을 다루기 위해서 배우는 분들도 있기 때문에 최대한 자세히 쉽게 다루고자 노력하겠습니다. For 문을 이용한 반복문 처리 왠만한 프로그램 언어(C, C++, Java, Python 등등)에는 대부분 For라는 반복문을 제공합니다. 우리가 흔히 프로그램은 2가지만 알아도 왠만큼 다 만들 수 있다라고 합니다. 그 중에 하나는 제어문(If ~ else)이고, 그리고 오..