반응형

 

매일 경제 전종목 게시판

 

 

daostock.py

import pymysql

class DaoStock:
    def __init__(self):
        self.con = pymysql.connect(host='localhost', port=3305, user='root',
                              password='python', db='python', charset='utf8')

        self.cur = self.con.cursor(pymysql.cursors.DictCursor)

    def insert(self,s_code,s_name,price,ymd):
        sql = f"""
            INSERT INTO 
                stock (s_code,s_name,price,ymd)
            VALUES ("{s_code}","{s_name}","{price}","{ymd}")
        """
        cnt = self.cur.execute(sql)
        self.con.commit()
        return cnt
        
    def __del__(self):
        self.cur.close()
        self.con.close()
        
if __name__ == '__main__':
    de = DaoStock()
    cnt = de.insert('1', '1', '1', '1')
    print("cnt",cnt)

 

 

mybs01.py

import requests, datetime
from bs4 import BeautifulSoup
from day18.daostock import DaoStock

ds = DaoStock()
ymd = datetime.datetime.today().strftime('%Y%m%d_%H%M')
print("ymd",ymd)

res = requests.get('https://stock.mk.co.kr/domestic/all_stocks')

soup = BeautifulSoup(res.text, "lxml")
divs = soup.find_all("div", {'class':"st_name"})

for idx,div in enumerate(divs):
    s_name = div.text.strip()
    s_code = div.find("a")['href'].split("/")[3]
    price = div.parent.find_all("div")[1].text.strip().replace(",","")
    cnt = ds.insert(s_code, s_name, price, ymd)
    print(idx,s_name,s_code,price,ymd,cnt)

 

결과 화면1

 

결과 화면2

 

 

반응형