Я пытаюсь почистить веб-страницу, которая имеет соединение с веб-сокетом, подключившись к веб-буферу самостоятельно.Это мой код:
from websocket import create_connection
import json
headers = json.dumps({
'Connection': 'Upgrade',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'Upgrade': 'websocket',
'Origin': 'https://www.bet777.be',
'Sec-WebSocket-Version': 13,
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'es,en;q=0.9,pl;q=0.8,es-AR;q=0.7',
'Sec-WebSocket-Key': 'mYc+hqhy8sUyeilrxyxSPA==',
'Sec-WebSocket-Extensions': 'permessage-deflate;
client_max_window_bits',
})
ws = create_connection('wss://pushserver-
uk.sbtech.com/signalr/connecttransport=webSockets&clientProtocol=1.5&connectionToken=nOugyCC54kCePwbLVXCfkfpxZsipI83mU476SdYNspEAD2U0%2F3O44lja67ujJErljZiflHtWyOwELt0OHfQhBQxXu14hVe8zE%2Fr4syolXWBCWWoG%2B2D8WwmUCxi5HSUz4&connectionData=%5B%7B%22name%22%3A%22communicationhub%22%7D%5D&tid=9', header=headers)
ws.send('''{"H":"communicationhub","I":0,"M":"Introduce"}''')
while True:
print(ws.recv)
Я получаю следующую ошибку:
File "/home/gonzalo/.local/lib/python3.6/site-packages/websocket/_handshake.py", line 124, in _get_handshake_headers
key = options['header']['Sec-WebSocket-Key']
TypeError: string indices must be integers
И если я удаляю часть Sec-WebScoket-Key, я получаю ответ о статусе 400.
Есть идеи, что я делаю неправильно?
РЕДАКТИРОВАТЬ: использование dict вместо json.dump выдает мне следующую ошибку.Файл "/home/gonzalo/.local/lib/python3.6/sitepackages/websocket/_handshake.py", строка 139, если v не равно None
TypeError: элемент последовательности 1: ожидаемый экземпляр str,int найдено