У меня есть два async with self.session as session
(по одному на каждый метод) и self.session is defined as aiohttp.ClientSession() in def __init__(self)
. Одним из них является получение всех URL-ссылок на странице, а другим - получение конкретной информации из этих URL-ссылок.
async def fetch(self, session, url):
async with session.post(url) as response:
return await response.text()
async def request(self, index_url):
async with self.session as session:
result = await self.fetch(session, index_url)
page_find = re.findall(r'https:\/\/website\.com\/\d+\/\d+\/\w+(?:-\w+)+', result)
formatted_url_links = list(dict.fromkeys(page_find))
...
...
...
async def get_information(self):
del self.song_information [:]
async with self.session as session:
for url in self.url_links:
information_database = await self.fetch(session, url)
soup = BeautifulSoup(information_database)
...
...
...
Каждый метод работает, когда я запускаю их по одной в async def main()
. , но когда я запускаю их одну за другой, это выдает мне эту ошибку.
raise RuntimeError('Session is closed')
Мое намерение состоит в том, чтобы пользователь ввел index_url, а затем вставил в него ссылки URL для информации. Можно ли запустить два async with self.session as session
одновременно?