在我的课堂上,我有一个获取网站的方法(如下所示)。
我注意到使用此方法的其他方法可能会导致向一个站点打开多个请求(当一个请求待处理时 self._page 仍然没有)。
我怎样才能避免它?
我的意思是,当有另一个对 _get_page 的调用但有一个正在等待时,只需从第一个调用返回一个 future 并且不要重复页面请求
async def _get_page(self) -> HtmlElement:
if self._page is None:
async with self._get_session().get(self._url) as page:
self._page = lxml.html.document_fromstring(await page.text())
return self._page
一只甜甜圈
撒科打诨
相关分类