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

时间:2018-06-12 20:11:38

标签: javascript python-3.x selenium-webdriver web web-scraping

我正在尝试加载更多注释,这些注释是通过单击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'..没有用。 非常感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我需要添加

element.click()