Код: Выделить всё
import asyncio
import websockets
import os
import base64
import json
def generate_sec_websocket_key():
random_bytes = os.urandom(16)
key = base64.b64encode(random_bytes).decode('utf-8')
return key
async def dexscreener_scraper():
headers = {
"Host": "io.dexscreener.com",
"Connection": "Upgrade",
"Pragma": "no-cache",
"Cache-Control": "no-cache",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
"Upgrade": "websocket",
"Origin": "https://dexscreener.com",
"Sec-WebSocket-Version": "13",
"Sec-WebSocket-Key": generate_sec_websocket_key(),
"Accept-Encoding": "gzip, deflate, br, zstd",
"Accept-Language": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7"
}
uri = "wss://io.dexscreener.com/dex/screener/pair/solana/zcdaw3jpcqey8jyvxnvmqs2cu35cyddy4ot7v8ednhz"
async with websockets.connect(uri, extra_headers=headers) as websocket:
while True:
message_raw = await websocket.recv()
message = json.loads(message_raw)
print(message)
await asyncio.sleep(1)
if __name__ == "__main__":
asyncio.run(dexscreener_scraper())
Код: Выделить всё
websockets.exceptions.InvalidStatusCode: server rejected WebSocket connection: HTTP 403
Ниже приведена информация о подключении WebSocket из инструментов разработчика моего браузера:
Код: Выделить всё
Request URL: wss://io.dexscreener.com/dex/screener/pair/solana/zcdaw3jpcqey8jyvxnvmqs2cu35cyddy4ot7v8ednhz
Request Method: GET
webpage : https://dexscreener.com/solana/zcdaw3jpcqey8jyvxnvmqs2cu35cyddy4ot7v8ednhz
Request Headers:
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: en-US,en;q=0.9,ar;q=0.8
Cache-Control: no-cache
Connection: Upgrade
Host: io.dexscreener.com
Origin: https://dexscreener.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: Qth1VxWMPWjj5C+s5z4qQA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Заранее благодарим вас за помощь!
Подробнее здесь: https://stackoverflow.com/questions/787 ... exscreener