интернете разбираюсь, почитав документацию не осилил тему, пытаюсь на примерах врубиться
import asyncio
import aiohttp
async def make_request(session, req_n):
file = open("B0.txt", encoding="utf-8" )
for line in file:
taat = str(line)[0:10]
url = "https://site.ru/data?id=" + taat
print(f"making request {req_n} to {url}") #Вижу, что делая запросы дублирует taat (id), то есть одно и тоже запрашивает несколько раз, как избежать?
async with session.get(url) as resp:
if resp.status == 200:
qwe = await resp.json()
async def main():
n_requests = 100 #Это как понимаю сколько делать запросов одновременно?
async with aiohttp.ClientSession() as session:
await asyncio.gather(*[make_request(session, i) for i in range(n_requests)])
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
во-первых, ты не закрыл файл во-вторых, query параметры не надо в url передавать, они передаются отдельно в get в-третьих, ты в каждой конкуретнонй таске заново открываешь файл и обходишь его целиком в-четвертых, это обычный list comprehension в-пятых, да, gather запускает такси "одновременно"
Спасибо за ответ, постараюсь разобраться с тем, что Вы написали. 2,3,4 пока не понял
3 - это твоя проблема 4 - это основы питона, которые надо было выучить задолго до работы с asyncio
Обсуждают сегодня