【发布时间】:2022-01-11 04:56:49
【问题描述】:
我有一个函数当前使用@timeout_decorator 装饰器在几秒钟后使函数超时。但是,我不想让函数超时,而是返回一个空列表[]。如有必要,我愿意使用其他包/装饰器,只要它们可以通过 PyPi 轻松安装。这是我当前的代码:
import timeout_decorator
import requests
from bs4 import BeautifulSoup as bs
@timeout_decorator.timeout(5, use_signals=False)
def get_soup(url):
session = requests.Session()
# set the User-agent as a regular browser
session.headers["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
# get the HTML content
html = session.get(url).content
# parse HTML using beautiful soup
soup = bs(html, "html.parser")
return soup
注意:如果您需要一个超时 URL 的示例,我使用 https://www.ebay.com
【问题讨论】:
-
你可以使用-->尝试:你的代码除了:return []
-
实际上在这种情况下不起作用!如果你使用那个装饰器,你仍然会得到一个 TimeoutError 并且没有它,函数将无限期地继续