Как использовать асинхронность в библиотеке curl-cffi? python
синхронный код выглядит вот так:
from curl_cffi import requests
import random
with open('urllist.txt', 'r') as urlfile:
urls = [line.strip() for line in urlfile]
with open('proxies.txt', 'r') as prx_file:
proxies = [line.strip() for line in prx_file.readlines()]
def get_proxy():
proxy = random.choice(proxies)
return {'http': f'http://{proxy}',
'https': f'http://{proxy}'}
for url in urls:
r = requests.get(url, impersonate='chrome', proxies=get_proxy())
print(r.status_code)
увидел, пример асинхронности в документации curl_cffi:
import asyncio
from curl_cffi.requests import AsyncSession
urls = [
"https://google.com/",
"https://facebook.com/",
"https://twitter.com/",
]
async with AsyncSession() as s:
tasks = []
for url in urls:
task = s.get(url)
tasks.append(task)
results = await asyncio.gather(*tasks)
не получается написать асинхронный код, какие то непонятные ошибки, и еще не понимаю как использовать прокси в curl_cffi.
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
import asyncio
from curl_cffi.requests import AsyncSession
async def main():
urls = [
"https://google.com/",
"https://facebook.com/",
"https://twitter.com/",
]
async with AsyncSession() as s:
tasks = (s.get(url) for url in urls)
results = await asyncio.gather(*tasks)
print(results)
asyncio.run(main())