【发布时间】:2019-08-26 21:17:45
【问题描述】:
我使用python包selenium自动点击“加载更多”按钮,成功。但是为什么“加载更多”后无法获取数据?
我想使用 python 从 imdb 抓取评论。在我点击“加载更多”按钮之前,它只显示 25 条评论。我使用python包selenium自动点击“加载更多”按钮,成功。但是为什么“加载更多”后无法获取数据,只能重复获取前 25 条评论数据?
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import time
seed = 'https://www.imdb.com/title/tt4209788/reviews'
movie_review = requests.get(seed)
PATIENCE_TIME = 60
LOAD_MORE_BUTTON_XPATH = '//*[@id="browse-itemsprimary"]/li[2]/button/span/span[2]'
driver = webdriver.Chrome('D:/chromedriver_win32/chromedriver.exe')
driver.get(seed)
while True:
try:
loadMoreButton = driver.find_element_by_xpath("//button[@class='ipl-load-more__button']")
review_soup = BeautifulSoup(movie_review.text, 'html.parser')
review_containers = review_soup.find_all('div', class_ ='imdb-user-review')
print('length: ',len(review_containers))
for review_container in review_containers:
review_title = review_container.find('a', class_ = 'title').text
print(review_title)
time.sleep(2)
loadMoreButton.click()
time.sleep(5)
except Exception as e:
print(e)
break
print("Complete")
我想要所有评论,但现在我只能获得前 25 条。
【问题讨论】:
标签: python selenium-webdriver web-scraping