이혜인

adding ticketing rate & rank

...@@ -5,31 +5,27 @@ from selenium import webdriver ...@@ -5,31 +5,27 @@ from selenium import webdriver
5 from webdriver_manager.chrome import ChromeDriverManager 5 from webdriver_manager.chrome import ChromeDriverManager
6 from selenium.webdriver.common.keys import Keys 6 from selenium.webdriver.common.keys import Keys
7 7
8 -
9 options = webdriver.ChromeOptions() 8 options = webdriver.ChromeOptions()
10 options.add_argument("headless") #창 안 띄움 9 options.add_argument("headless") #창 안 띄움
11 options.add_experimental_option("excludeSwitches", ["enable-logging"]) 10 options.add_experimental_option("excludeSwitches", ["enable-logging"])
12 driver = webdriver.Chrome(options = options) 11 driver = webdriver.Chrome(options = options)
13 driver2=webdriver.Chrome(options = options) 12 driver2=webdriver.Chrome(options = options)
14 -# driver = webdriver.Chrome(ChromeDriverManager().install(),options=options) 13 +
15 url = "https://megabox.co.kr/booking" 14 url = "https://megabox.co.kr/booking"
16 rate_url = "https://www.megabox.co.kr/movie" 15 rate_url = "https://www.megabox.co.kr/movie"
17 driver.maximize_window() 16 driver.maximize_window()
18 driver2.maximize_window() 17 driver2.maximize_window()
19 18
20 -driver.implicitly_wait(3) 19 +driver.implicitly_wait(2)
21 driver.get(url) 20 driver.get(url)
22 21
23 -driver2.implicitly_wait(3) 22 +driver2.implicitly_wait(2)
24 driver2.get(rate_url) 23 driver2.get(rate_url)
25 -title = driver2.find_elements_by_class_name('number') 24 +
26 r2 = driver2.page_source 25 r2 = driver2.page_source
27 soup = BeautifulSoup(r2, "html.parser") 26 soup = BeautifulSoup(r2, "html.parser")
28 ticketing_rate = soup.select('.rate') 27 ticketing_rate = soup.select('.rate')
29 -for i in ticketing_rate: 28 +movie_name = soup.select('.tit-area > p.tit')
30 - print(i.string)
31 -
32 -
33 29
34 iframes = driver.find_elements_by_css_selector('iframe') 30 iframes = driver.find_elements_by_css_selector('iframe')
35 31
...@@ -59,14 +55,24 @@ for brch in GJ: ...@@ -59,14 +55,24 @@ for brch in GJ:
59 dict1[brch['brch-nm']] = brch['brch-no'] 55 dict1[brch['brch-nm']] = brch['brch-no']
60 for brch in Gangwon: 56 for brch in Gangwon:
61 dict1[brch['brch-nm']] = brch['brch-no'] 57 dict1[brch['brch-nm']] = brch['brch-no']
62 -# print(dict1)
63 -
64 58
65 attr1 = soup.select("#mCSB_1_container>ul>li>button") 59 attr1 = soup.select("#mCSB_1_container>ul>li>button")
60 +
66 movie_dict = dict() 61 movie_dict = dict()
67 for movie in attr1: 62 for movie in attr1:
68 movie_dict[movie['movie-nm']] = [movie['movie-no'], movie['form-at']] 63 movie_dict[movie['movie-nm']] = [movie['movie-no'], movie['form-at']]
69 - print(movie['movie-nm'], movie['movie-no'], movie['form-at']) 64 +
65 +for r, m in zip(ticketing_rate, movie_name):
66 + movie_dict[m['title']].append(r.string)
67 +
68 +rank = 1
69 +for value in movie_dict.values():
70 + if(len(value) == 2):
71 + value.append("예메율 0.0%")
72 + if(rank<=10):
73 + value.append({'rank' : rank})
74 + rank += 1
75 +print(movie_dict)
70 76
71 #form-at: 처음 그냥 받아올 때 해당 날짜에 영화 있는지 확인(장소 상관 없이) 77 #form-at: 처음 그냥 받아올 때 해당 날짜에 영화 있는지 확인(장소 상관 없이)
72 #brch-no로 쿼리 주고 나서 form-at확인 필요 78 #brch-no로 쿼리 주고 나서 form-at확인 필요
......