Selenium Chrome(Python):在这种情况下,浏览器冻结-超时并退出浏览器

Selenium Chrome(Python):在这种情况下,浏览器冻结-超时并退出浏览器,python,selenium-webdriver,selenium-chromedriver,Python,Selenium Webdriver,Selenium Chromedriver,我使用Selenium Chrome从在线资源中提取信息。最重要的是,我循环浏览URL列表(存储在mylinks)并在浏览器中加载网页,如下所示: from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import

我使用Selenium Chrome从在线资源中提取信息。最重要的是,我循环浏览URL列表(存储在
mylinks
)并在浏览器中加载网页,如下所示:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("window-size=1200,800")
browser = webdriver.Chrome(chrome_options=options)
browser.implicitly_wait(30)

for x in mylinks:
    try:
        browser.get(x)
        soup = BeautifulSoup(browser.page_source, "html.parser")
        city = soup.find("div", {"class": "city"}).text
    except:
        continue
我的问题是,浏览器在某个点“冻结”。我知道这个问题是由网页引起的。因此,由于浏览器不再工作,我的例程停止。还有
浏览器。隐式等待(30)
在这里没有帮助。显式或隐式等待都不能解决问题

我想“超时”这个问题,这意味着我想在
x
秒后(如果浏览器冻结)退出浏览器并重新启动它

我知道我可以使用带有超时的
子进程
,比如:

def startprocess(filepath, waitingtime):
    p = subprocess.Popen("C://mypath//" + filepath)
    try:
        p.wait(waitingtime)
    except subprocess.TimeoutExpired:
        p.kill()
然而,对于我的任务来说,这个解决方案是第二好的


问题:是否有其他方法使
浏览器超时。在上面的循环中获取(x)
步骤(以防浏览器冻结)并继续下一步?

我的代码中有一个隐式等待语句,这可能是重复的。另外,显式等待也不起作用,所以不完全是一种重复。