Вам нужно подождать, пока идентификатор элемента action_wait
не будет виден, и найти текст, если больше нет обзора, или просто установить максимальное количество просмотров, которое вы хотите.
В этом примере результат, ограниченный 100, вы можете увеличить егоно если вы не хотите ждать дольше, просто Ctrl + C
, и данные будут обработаны в Beautifulsoup.
driver.get('https://.....')
maxResult = 100
currentResults = 0
pageSource = ''
try:
print('press "Ctrl + C" to stop loop and process using beautfulsoup.')
while currentResults < maxResult:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, "action_wait")))
currentResults = len(driver.find_elements_by_css_selector('.apphub_Card.modalContentLink.interactable'))
print('currentResults: %s' % currentResults)
pageSource = driver.page_source
except KeyboardInterrupt:
print "Cancelled by user"
except: pass
soup = BeautifulSoup(pageSource, 'html.parser')
reviews = soup.select('.apphub_Card.modalContentLink.interactable')
print('reviews count by BeautifulSoup: %s' % len(reviews))