python - 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
解决方案
你可以把整个东西放在一个 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:。
推荐阅读
- python - 如何使用全局变量更新标签
- websphere - 如何将 IBM Maximo Websphere 主机添加到 Windows Server 网络负载平衡集群?
- bootstrap-4 - 如何仅在索引页面上显示轮播并使其适合整个屏幕?- asp.net 核心 mvc 引导程序
- javascript - 如何在反应中使用类 npm 包
- asp.net-core - 如何在 AsEnumerable 选择中给出 if else if 语句
- express - 如何使用 express.js 从 API 获取数据
- python - 部署时 Heroku 中的 FileNotFoundError (Django)
- python-3.x - 扩展列表
- javascript - 有没有办法在我的 Chrome 扩展程序获得批准之前将其发送给测试人员?
- java - Wildfly 20 中未关闭数据源池连接