-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path네이버 증권 당일 거래 TOP 주식들 크롤링.py
65 lines (50 loc) · 2.1 KB
/
네이버 증권 당일 거래 TOP 주식들 크롤링.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from bs4 import BeautifulSoup
import urllib.request
import pandas as pd
from selenium import webdriver
import time
#네이버 증권 당일 거래 TOP 주식들 크롤링
def Stock_crawling(result):
wd = webdriver.Chrome('chromedriver 디렉토리 위치')
time.sleep(3)
url = "https://finance.naver.com/"
wd.get(url)
time.sleep(3)
html = wd.page_source
soupCB1 = BeautifulSoup(html, 'html.parser')
#당일 거래 상위 종목(상승)
stock_name_list1 = soupCB1.select("#_topItems1 > tr.up")
#당일 거래 상위 종목(하락)
stock_name_list2 = soupCB1.select("#_topItems1 > tr.down")
#당일 거래 상위 종목리스트(상승 + 하락)
stock_name_list = stock_name_list1 + stock_name_list2
#종목(주식) 개수
stock_len = len(stock_name_list)
for i in range(stock_len):
n = str(i+1)
try:
#주식 가격
stock_price_list = soupCB1.select("#_topItems1 > tr:nth-child("+n+") > td:nth-child(2)")
stock_price = stock_price_list[0].text
#주식 이름
stock_name_list = soupCB1.select("#_topItems1 > tr:nth-child("+n+") > th > a")
stock_name = stock_name_list[0].text
#주식 상승하락폭(금액)
stock_pice_updown_list1 = soupCB1.select("#_topItems1 > tr:nth-child("+n+") > td:nth-child(3)")
stock_pice_updown1 = stock_pice_updown_list1[0].text
#주식 상승하락폭(퍼센트)
stock_pice_updown_list2 = soupCB1.select("#_topItems1 > tr:nth-child("+n+") > td:nth-child(4)")
stock_pice_updown2 = stock_pice_updown_list2[0].text
result.append([stock_name]+[stock_price]+[stock_pice_updown1]+[stock_pice_updown2])
except:
continue
return
def main():
result= []
check = 0
print('stock crawling >>>>>>>>>>>>>>>>>>>>>>>>')
Stock_crawling(result)
print(result)
CB_tbl = pd.DataFrame(result,columns =('name','price','updown','updown(%)'))
CB_tbl.to_csv('./Stock_crawling.csv', encoding = 'cp949', mode = 'w',index = True)
main()