Как можно проходить по списку / словарю items с прокси в цикле в асинхронном парсинге?
Вот код:
proxies = [proxy1, proxy2]
result = []
async def x_get(session, t: str):
url = f'...={t}'
async with session.get(url, ssl=False) as resp:
resp_json = await resp.json()
result.append(resp_json)
async def x_scraper():
items = [['ttt', 'yyy'], ['rrr', 'kkk'], ['lll', 'fff'], ['ggg', 'hhh']]
async with aiohttp.ClientSession() as session:
tasks = []
for item in items:
for t in item:
task = asyncio.create_task(x_get(session, t))
tasks.append(task)
await asyncio.gather(*tasks)
Как сделать так, чтобы перый список парсился через первое прокси, второй список через второе прокси, третий снова через первое, четвертый через второе прокси и тд? Списков много, а прокси 2
Можно сделать несколько функций get, но когда прокси много, это становится не очень удобным
proxy1 = ...
proxy2 = ...
result = []
async def x1_get(session, t: str):
url = f'...={t}'
async with session.get(url, ssl=False, proxy=proxy1) as resp:
resp_json = await resp.json()
result.append(resp_json)
async def x2_get(session, t: str):
url = f'...={t}'
async with session.get(url, ssl=False, proxy=proxy2) as resp:
resp_json = await resp.json()
result.append(resp_json)
async def x_scraper():
items = [['ttt', 'yyy'], ['rrr', 'kkk'], ['lll', 'fff'], ['ggg', 'hhh']]
async with aiohttp.ClientSession() as session:
tasks = []
for t in items[0]:
task = asyncio.create_task(x1_get(session, t))
tasks.append(task)
for t in items[1]:
task = asyncio.create_task(x2_get(session, t))
tasks.append(task)
for t in items[2]:
task = asyncio.create_task(x1_get(session, t))
tasks.append(task)
for t in items[3]:
task = asyncio.create_task(x2_get(session, t))
tasks.append(task)
await asyncio.gather(*tasks)