Selenium爬取豆瓣电影全部影评页面:解决TimeoutException问题

在使用Selenium爬取豆瓣电影全部影评页面时,可能会遇到TimeoutException错误,提示元素定位失败。本文将介绍解决该问题的方法。

问题代码:

url = 'https://movie.douban.com/subject/25868125/'
driver.get(url)
all_comment_btn = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#reviews-wrapper > div > div > div.mod-hd > h2 > span > a')))
all_comment_btn.click()
time.sleep(10)

错误提示:

报错all_comment_btn = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#reviews-wrapper > div > div > div.mod-hd > h2 > span > a')))  File "C:\Python3\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

解决方法:

  1. 增加等待时间:
all_comment_btn = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#reviews-wrapper > div > div > div.mod-hd > h2 > span > a')))
  1. 修改定位元素方式:
all_comment_btn = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="reviews-wrapper"]/div/div/div[1]/h2/span/a')))

解释:

  • TimeoutException 错误通常是由于页面加载速度过慢导致元素定位失败。
  • 增加等待时间可以给页面更多时间加载,提高定位成功的概率。
  • 修改定位元素方式可以尝试使用更稳定的元素选择器,例如使用XPath定位器。

注意:

  • 调整等待时间需要根据实际情况进行调整。
  • 选择合适的元素选择器可以提高代码的稳定性。

原文地址: https://www.cveoy.top/t/topic/oBak 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录