Selenium点击下一页链接而不加载下一页

时间:2018-01-06 04:57:44

标签: python html selenium xpath web-crawler

我是selenium和webscraping的新手,我正试图从链接中获取信息:https://www.carmudi.com.ph/cars/civic/distance:50km/?sort=suggested

以下是我正在使用的代码片段:

while max_pages > 0:
                results.extend(extract_content(driver.page_source))
                next_page = driver.find_element_by_xpath('//div[@class="next-page"]')
                driver.execute_script('arguments[0].click();', next_page)
                max_pages -= 1

当我尝试打印结果时,我总是得到(max_pages)来自第1页的相同结果。页面中显示“下一页”按钮,当我尝试查找同一类的元素时,它只显示1个元素。当我尝试通过精确的xpath获取元素并对其执行单击操作时,它也不起作用。我将它包含在try-except块中,但没有错误。为什么会这样?

2 个答案:

答案 0 :(得分:1)

你使这比它需要的更复杂。在这里使用JS点击没有意义......只需使用正常的Selenium点击。

while True:
    # do stuff on the page
    next = driver.find_element_by_css_selector("a[title='Next page']")
    if next
        next.click()
    else
        break

答案 1 :(得分:0)

取代:

next_page = driver.find_element_by_xpath('//div[@class="next-page"]')
driver.execute_script('arguments[0].click();', next_page)

使用:

driver.execute_script('next = document.querySelector(".next-page"); next.click();')

如果您在控制台中尝试next = document.querySelector(".next-page"); next.click();,则可以看到它有效。