петля ползания в питоне - PullRequest
0 голосов
/ 25 июня 2019

Я хочу посмотреть и получить все отзывы в магазине Google Play, используя Python.Тем не менее, я должен нажать кнопку «Просмотреть больше».Я думаю, что мне нужна петля.

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

SLEEP=5

def pause():
    """pause"""
    time.sleep(SLEEP)

options = webdriver.ChromeOptions()
options.add_argument('window-size=1920x2080')

browser = webdriver.Chrome('C:/chromedriver.exe', chrome_options=options)

browser.get("https://play.google.com/store/apps/detailsid=com.spotify.music&hl=us&showAllReviews=true")
time.sleep(1)

pause()
browser.execute_script("window.scrollBy(0,5500)")
while True:
    button = WebDriverWait(browser,60).until(EC.presence_of_element_located((By.XPATH, """""")))
    button.click()

1 Ответ

0 голосов
/ 26 июня 2019

note

execute_script (script, * args) - синхронно выполняет JavaScript в текущем окне / фрейме.

, поэтому вы просто делаете

  1. прокрутка вниз
  2. проверка полосы прокрутки в конце страницы.
  3. после того, как вниз, по-прежнему полоса прокрутки находится в конце страницы, найдите кнопку «Просмотреть еще» и нажмите.

и код

lastHeight = browser.execute_script("return document.body.scrollHeight")
while true:
        browser.execute_script("window.scrollTo(0,document.body.scrollHeight);")
        time.sleep(1)    
        newHeight = browser.execute_script("return document.body.scrollHeight")

        if newHeight != lastHeight:
                #parse new data
        else:
                #button click
                #parse new data
        lastHeight = newHeight
...