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



我在Python中使用Selenium。我必须访问一个URL,获取内容,然后点击下一个按钮访问下一个页面,并重复相同的操作。有些原因是我不能递归地完成它,仍然在访问第一页,这是有意义的。我的代码如下:

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

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

您需要获取新的URL,并将其作为参数传递到start函数中。你每次都会在第一行重置url。

我认为selenium不重新加载相同的url可能是明智的,所以您可能只需要执行以下

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)

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

最新更新