我可以使用 try/except 重新启动我的 python 代码吗?

Can I restart my python code using a try/except?

我有一个程序,我要访问 reddit.com 网站并从中获取 html 元素。然而,大约有 1/10 的时间,旧的 reddit 网站出现了,我必须重新启动程序。有没有更短的方法来处理这个错误(基本上再次从顶部重新启动)?我似乎无法用 try/except.

来解决这个问题
browser = webdriver.Chrome(executable_path=r'C:\Users\jacka\Downloads\chromedriver_win32\chromedriver.exe')

browser.get("https://www.reddit.com/")

# grabs the html tag for the subreddit name
elem = browser.find_elements_by_css_selector("a[data-click-id='subreddit']")

#in the case that old reddit loads, it restarts the browser.
if len(elem) == 0:
    browser.close()

    browser = webdriver.Chrome(executable_path=r'C:\Users\jacka\Downloads\chromedriver_win32\chromedriver.exe')

    browser.get("https://www.reddit.com/")

    # grabs the html tag for the subreddit name
    elem = browser.find_elements_by_css_selector("a[data-click-id='subreddit']")

感谢@HSK 解决了。我将代码放在 while 循环中 运行 直到它得到正确版本的 reddit。

#had to initalize elem so the loop would run
elem = ""
while len(elem) == 0:
    browser = webdriver.Chrome(executable_path=r'C:\Users\jacka\Downloads\chromedriver_win32\chromedriver.exe')

    browser.get("https://www.reddit.com/")

    # grabs the html tag for the subreddit name
    elem = browser.find_elements_by_css_selector("a[data-click-id='subreddit']")

就像@HSK在评论中提到的,你可以使用一个无限的while循环来不断尝试,直到你无一例外地得到你想要的。请在离开前添加 finally 子句以关闭 browser 句柄。

while True:
    browser = webdriver.Chrome(executable_path=r'C:\Users\jacka\Downloads\chromedriver_win32\chromedriver.exe')
    try:
        browser.get("https://www.reddit.com/")
        elem = browser.find_elements_by_css_selector("a[data-click-id='subreddit']")
        break
    except Exception:
        pass
    finally:
        browser.close()