, поэтому мой код пытается одновременно отправить 300 запросов GET и затем подключиться к 300 веб-сокетам.Он работает с 3+ веб-сокетами / GET-запросами, но как только он набирает большие числа, он выдает ошибку.Также запросы GET не выполняются асинхронно, и ошибка появляется только после того, как все они были отправлены.
Это ошибка:
[...] File "/ usr / local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py ", строка 748, в getaddrinfo для res в _socket.getaddrinfo (хост, порт, семейство, тип,proto, flags): socket.gaierror: [Errno 8] указано ни имя, ни имя сервера, либо неизвестно
Это код:
import websockets
import requests
import asyncio
async def get_order_book(symbol):
r = requests.get(url='https://api.binance.com/api/v1/depth',
params={'symbol': symbol, 'limit': 20})
r2 = requests.get(url='https://api.binance.com/api/v1/aggTrades',
params={'symbol': symbol, 'limit': 1})
obdata = r.json()
trdata = r2.json()
print(symbol)
ws_url = 'wss://stream.binance.com:9443/ws/' + lc_symbol + '@depth/' + lc_symbol + '@aggTrade'
websocket = await websockets.connect(ws_url)
async def get_order_books():
r = requests.get(url='https://api.binance.com/api/v1/ticker/24hr')
await asyncio.gather(*[get_order_book(data['symbol']) for data in r.json()])
if __name__ == '__main__':
asyncio.run(get_order_books())
Есть идеи, почему это происходит?
Спасибо!