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