· 6 years ago · Nov 09, 2019, 08:12 AM
1from selenium import webdriver
2import sqlite3
3import time
4from pykrx import stock
5
6
7def get_fundamental(driver, ticker):
8 result = []
9 driver.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd="+ticker)
10
11 # for 문으로 반복되는 코드를 정리
12 for i in range(3, 7):
13 sel = "#pArea > div.wrapper-table > div > table > tbody > tr:nth-child(3) > td > dl > dt:nth-child({}) > b".format(i)
14 ui = driver.find_element_by_css_selector(sel)
15 data = ui.text
16 # 데이터 타입을 숫자로 변경
17 if ui.text == "":
18 data = "0"
19 elif ui.text[-1] == "%":
20 data = data[:-1]
21
22 result.append(float(data.replace(",", "")))
23
24 return result
25
26
27driver = webdriver.Chrome('chromedriver.exe')
28conn = sqlite3.connect("project.db")
29cur = conn.cursor()
30
31query = "create table if not exists fundamental (ticker text primary key, per real, group_per real, pbr real, div real)"
32cur.execute(query)
33
34for 티커 in stock.get_market_ticker_list()[:10]:
35 results = get_fundamental(driver, 티커)
36 query = "insert into fundamental values ('{}', {}, {}, {}, {})".format(
37 티커, results[0], results[1], results[2], results[3])
38 cur.execute(query)
39 time.sleep(1)
40
41conn.commit()
42conn.close()