Вы можете использовать бесконечное l oop и загружать страницу, пока элемент Show More
не будет найден из-за отложенной загрузки. Чтобы замедлить l oop, я использовал time.sleep(1)
. Он дает 200 отзывов на этой странице. Если вы хотите получить больше, вам нужно снова нажать Show More
.
Однако некоторые форматы обзора не поддерживают, поэтому попробуйте ... за исключением блока. Надеюсь, это поможет .
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://play.google.com/store/apps/details?id=com.tudasoft.android.BeMakeup&hl=en&showAllReviews=true')
while True:
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
time.sleep(1)
elements=WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'div.UD7Dzf')))
if len(driver.find_elements_by_xpath("//span[text()='Show More']"))>0:
break;
print(len(elements))
allreview=[]
try:
for review in elements:
allreview.append(review.text)
except:
allreview.append("format incorrect")
print(allreview)