from selenium import webdriver
broswer = webdriver.Chrome("./chromedriver 2")
broswer.maximize_window()
# 페이지 이동
url = "https://play.google.com/store/movies/top"
broswer.get(url)
# 지정한 위치로 스크롤 내리기
# 해상도의 높이인 900으로 스크롤 내리기
# broswer.execute_script("window.scrollTo(0, 900)")
# 해상도의 높이인 1900으로 스크롤 내리기
# broswer.execute_script("window.scrollTo(0, 1900)")
# 화면 가장 아래로 스크롤 내리기
# broswer.execute_script("window.scrollTo(0, document.body.scrollHeight)")
import time
interval = 2 # 2초에 한번씩 스크롤 내림
# 현재 문서 높이를 가져와서 저장
prev_height = broswer.execute_script("return document.body.scrollHeight")
# 반복 수행
while True:
# 스크롤 가장 아래로 내림
broswer.execute_script("window.scrollTo(0, document.body.scrollHeight)")
# 페이지 로딩 대기
time.sleep(interval)
# 현재 문서 높이를 가져와서 저장
curr_height = broswer.execute_script("return document.body.scrollHeight")
if curr_height == prev_height:
break
prev_height = curr_height
print("스크롤 완")
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(broswer.page_source, "lxml")
# movies = soup.find_all("div", attrs={"class": ["ImZGtf mpg5gc", "Vpfmgd"]}) 리스트형태로 감싸게되면은 클래스명이 첫번째, 두번째인거 둘다 가져오게된다.
movies = soup.find_all("div", attrs={"class": "Vpfmgd"})
print(len(movies))
for movie in movies:
title = movie.find("div", attrs={"class": "WsMG1c nnK0zc"}).get_text()
#할인 전 가격
original_price = movie.find("span", attrs={"class": "SUZt4c djCuy"})
if original_price:
original_price = original_price.get_text()
else:
# print(title, "<할인되지 않는 영화 제외>")
continue
#할인 된 가격
price = movie.find("span", attrs={"class": "VfPpfd ZdBevf i5DZme"}).get_text()
#링크
link = movie.find("a", attrs={"class": "JC71ub"})["href"]
#올바른 링크 정보 생성을 위해 : https://play.google.com + link
print(f"제목 : {title}")
print(f"할인 전 금액 : {original_price}")
print(f"할인 후 금액 : {price}")
print("링크 : ", "https://play.google.com" + link)
print("_" * 100)
broswer.quit()
'내마음대로만들어보자 > 크롤링' 카테고리의 다른 글
특정 시간동안 계속해서 scroll down 하기 (0) | 2021.06.11 |
---|---|
Selenium / BeautifulSoup- 만개의레시피 (무한스크롤, 특정값 가져오기) (0) | 2021.06.11 |
Selenium 무한 스크롤 (0) | 2021.06.08 |
selenium 활용 - 네이버 항공권 (0) | 2021.06.08 |