Selenium爬取豆瓣电影全部影评页面:解决TimeoutException问题
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:
解决方法:
- 增加等待时间:
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')))
- 修改定位元素方式:
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 著作权归作者所有。请勿转载和采集!