使用 python 和 selenium 进行网页抓取时与 JavaScript 对象交互



我正在尝试加载更多注释,这些注释是通过单击JavaScript对象加载的。然后废弃页面。为了测试这一点,我正在打印页面在单击"加载更多"按钮之前和之后包含的评论数量(在 p 标签内(。但是,它在前后指向相同数量的 p 标签。如果您查看该页面,它会有更多评论。我哪里出错了?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.PhantomJS(executable_path='PATH_TO.../phantomjs')
driver.get('http://www.ratemyprofessors.com/ShowRatings.jsp?tid=1500075')
comments = driver.find_elements_by_tag_name('p')
print('Before', len(comments))
time.sleep(1)

try:
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'loadMore')))
time.sleep(1)
finally:
comments = driver.find_elements_by_tag_name('p')
print('After', len(comments))
driver.close()

请注意,我尝试了"loadMore"和"loadmoreBlog"都没有工作。 非常感谢您的回答。

我需要添加

element.click()

最新更新