Mechanicalsoup 在某些网站上冻结

Mechanicalsoup freezes with some websites

我将 MechanicalSoup 用于自定义搜索引擎。当我尝试打开某些网站时,MechanicalSoup 会冻结,长达几个小时,并且仅在此延迟之后才会出现异常。有时它可以工作,但对于某些网站来说它总是很长例如:

import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open('https://www.amd.com')
browser.open('https://www.airfrance.fr')

我怎样才能使用 mechanicalsoup 而不会出现这种冻结,或者我怎样才能设置一个较短的超时时间(例如最多 10 秒),以避免等待时间。

MechanicalSoup API 是 Requests 库的薄包装,它在相关函数调用中接受 timeout 参数(参见 https://requests.readthedocs.io/en/master/user/quickstart/#timeouts)。

因此,您可以通过添加 timeout=10 在 MechanicalSoup 中设置 10 秒超时,例如:

import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open('https://www.amd.com', timeout=10)
browser.open('https://www.airfrance.fr', timeout=10)