首页 > 解决方案 > ValueError 时的 Selenium 重试 URL

问题描述

如果 ValueError,我如何从列表中重试 url?

错误:

raise ValueError("No tables found")
ValueError: No tables found

或者其他例外。

如果ValueError那时可以使用driver.refresh(2wice)

但我不知道代码中的位置:

if __name__ == '__main__':

    results = None

    for url in urls:
        game_data = parse_data(url)
        if game_data is None:
            continue
        result = pd.DataFrame(game_data.__dict__)
        if results is None:
            results = result
        else:
            results = results.append(result, ignore_index=True)

最大重试次数 2

标签: pythonselenium-webdriverexception

解决方案


你可以把整个东西放在一个 try/except 块中,如果它在某个时候遇到 ValueError,你可以把相同的代码放在 except 下,它会重试它。

if __name__ == '__main__':

    results = None

    for url in urls:
        try:
            game_data = parse_data(url)
            if game_data is None:
                continue
            result = pd.DataFrame(game_data.__dict__)
            if results is None:
                results = result
            else:
                results = results.append(result, ignore_index=True)
        except ValueError:
            game_data = parse_data(url)
            if game_data is None:
                continue
            result = pd.DataFrame(game_data.__dict__)
            if results is None:
                results = result
            else:
                results = results.append(result, ignore_index=True)

如果您希望它在尝试两次后执行某些操作,请在具有相同间距的 except 块之后添加 finally:。


推荐阅读