본문 바로가기
실전머신러닝

MySQL 데이터베이스 연동하기 with Python

by 다빈치스탁 2020. 9. 4.
728x90
반응형

master.txt
0.06MB

지난 포스트에서는 삼성전자 한 종목에 대해서 뉴스크롤링을 하는 방법을 알아봤다. 그러나 우리가 필요한 건 뭐다? 그렇다. 빅데이터이다. 네이버에서 25,000건/일 사용량에 대해서는 특별히 제약도 두지 않는데 1건만 쓰기 아깝다. 그러니 이제부터는 MySQL(세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다. 위키백과)에 종목마스터(코스피, 코스닥 전체 유니버스)를 저장하고 해당 유니버스 전체를 크롤링하는 방법에 대해서 한번 알아보자.

 

그럼 첫 째, MySQL(dev.mysql.com/downloads/mysql/) 홈페이지에 접속해서 서버를 설치해보자. 링크를 따라가면 아래의 그림과 같이 설치파일을 다운로드할 수 있는 버튼이 나온다. 다운받아서 실행하기를 누른다. MSI(MicrosoftInstaller)를 실행하면 GUI방식으로 쉽게 설치할 수 있다. 그냥 과감하게 다음 다음만 누르자. 

 

 

ODBC, Sample, Document,,, 등은 그냥 건너띄어도 상관이 없는데 MySQL Server를 건너띄면 안된다. 그냥 가장 최신버전(최상위)을 더블클릭해서 설치하자. 경우에 따라서는 vc++ 재배포 패키지 설치가 필요할 수 있는데 그건 msi에서 친절하게 메시지를 띄워주니 마찬가지로 다음을 꾹 눌러주자. 알아서 쭉쭉 설치가 진행되고 환경세팅까지 진행된다. 파이프라인이 어쩌고 포트가 어쩌고 나오면 그냥 과감하게 Next 버튼만 열심히 눌러준다.

그렇지만 root 계정의 비밀번호를 입력하는 단계가 나오면 신중하게 입력하고 까먹지 말자. 이거 잊어버리면 그냥 지우고 새로 설치하는게 빠르다. 입력이 완료되었으면 마찬가지로 Finish가 나올 때까지 열심히 Next만 눌러주면 된다. 자 이것으로 MySQL 서버는 설치가 완료되었으니 그 다음으로 중요한 단계 아래의 그림처럼 application에 workbench를 설치해보자. 아래의 그림처럼 가장 최신버전(최상위)을 선택한 뒤 Next만 계속 누르면 된다. 어려운 말 나오면? 다음! 그러다가 Finish가 나오면? 끝!

 

자 위의 과정까지 마무리 되었다면 설치된 프로그램 목록에서 MySQL WorkBench를 찾아서 실행한다. 그러면 아래의 그림과 같이 로컬호스트(본인컴퓨터) 접속정보가 생성되는데 더블클릭 후 아까 입력했던 root 비밀번호를 저장하고 연결하면 쿼리를 입력하라는 창이 뜬다. 그러면 우선 종목코드를 저장할 데이터베이스와 테이블을 만들어야하는데 MySQL이 익숙치 않은 분들은 아래의 코드를 복사한 다음에 쿼리에 붙여넣고 실행 ㄱㄱ.

 

create database stock_data;
use stock_data;
create table stock_master(name varchar(45), 
code varchar(10), gubun varchar(20)) default charset = utf8;

이제는 테이블까지 완성했다. 종목코드를 입력할 차례인데 코스피, 코스닥 대략 2000천 여개 종목들에 대해서 일일이 입력하기에는 상당히 번거롭다. 그래서 준비했다. 우선 첨부된 종목코드 리스트에 관한 텍스트파일을 다운 받은 뒤 아래의 python 코드를 그대로 실행하자.

import pymysql

#본인의 MySQL root 비번을 입력한다.
conn= pymysql.connect(host='localhost', user='root', password='', db='stock_data', charset='utf8', local_infile = 1)
curs = conn.cursor()
sql = """LOAD DATA local infile "./master.txt"  INTO TABLE stock_master CHARACTER SET UTF8 FIELDS TERMINATED BY ','"""
curs.execute(sql)
conn.commit()
conn.close()

파이썬을 실행하면 짜잔 아래와 같이 코스피, 코스닥의 종목코드들이 예쁘게 입력되어 있는 것을 확인할 수 있다. 자 그럼 다음 포스트에서는 MySQL에 저장된 종목들을 하나씩 불러와서 순차적으로 뉴스를 크롤링한 뒤 텍스트파일로 저장하는 방법에 대해 연구해보자.

 

728x90
반응형

댓글