递归地单击链接以获取分页数据

时间:2015-07-04 17:55:08

标签: python recursion selenium-webdriver

我正在使用Selenium和Python。我必须访问URL,获取内容并单击 next 按钮才能访问下一页并重复相同的操作。一些我怎么不能递归地执行它仍然是访问第一页确实有意义。我的代码如下:

def start():
    url = ‘http://example.com/?page=1'
    if driver.find_element_by_class_name('page-link'):
        start()

如何实现?我应该获取第一页的内容,将数据传递给其他方法,然后递归调用它吗?

2 个答案:

答案 0 :(得分:0)

您需要获取新URL并将其作为参数传递给start函数。您每次都在第一行重置网址。

答案 1 :(得分:0)

我认为selenium可能很聪明,不会重新加载相同的网址,所以你可能只是做以下

def start(traversed=False):
    if not traversed:
        url = "http://example.com/?page=1"
    if driver.find_element_by_class_name('page-link'):
        start(traversed=True)

OR

def start(url=None):
    if not url:
        url = "http://example.com/?page=1"
    if driver.find_element_by_class_name('page-link'):
        start(url=driver.current_url) #browser.current_url