我可以使用 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()
我有一个程序,我要访问 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()