Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2021 23:17:32

Novichet924
Зарегистрирован: 2021-03-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

Привет всем!
Создаю клиентское подключение к websocket.
добавив строку websocket.enableTrace(True) на экран выводятся заголовки подключения.
Как их сохранить в файл для дальнейшего анализа?

#!/usr/bin/env python3

import websocket
import ssl

websocket.enableTrace(True)
ws = websocket.WebSocket(sslopt={“cert_reqs”: ssl.CERT_NONE})
ws.connect(“wss://echo.websocket.org”, origin=“test”)
ws.send(“Hello, Server”)
ws.close()

Офлайн

#2 Март 27, 2021 09:26:18

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

А стандартный способ перенаправить вывод не помогает?

 some.py >main.log



Офлайн

#3 Март 27, 2021 09:29:22

Novichet924
Зарегистрирован: 2021-03-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

Нет.
Насколько я понимаю это отладочная инфа, которая не является результатом.

Офлайн

#4 Март 27, 2021 10:49:16

Novichet924
Зарегистрирован: 2021-03-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

Уже и так пробовал:

#!/usr/bin/env python3

import websocket
import ssl
import logging
import sys


class Tee(object):
def __init__(self, name, mode):
self.file = open(name, mode)
self.stdout = sys.stdout

def __del__(self):
self.close()

def write(self, data):
self.stdout.write(data)
self.file.write(data)

def flush(self):
self.stdout.flush()
self.file.flush()

def close(self):
if sys.stdout is self:
sys.stdout = self.stdout
self.file.close()


websocket.enableTrace(True)
ws = websocket.WebSocket(sslopt={“cert_reqs”: ssl.CERT_NONE})
ws.connect(“wss://echo.websocket.org”, origin=“test”)
ws.send(“Hello, Server”)
ws.close()


sys.stdout = Tee('/tmp/log.txt', ‘a’)





На экран печатает заголовки, а в файл не хочет хохранять

Офлайн

#5 Март 27, 2021 11:27:56

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

Novichet924
Нет.
Насколько я понимаю это отладочная инфа,
Вы идете каким-то безумно сложным, а раз стрелкой не перенаправилось то и неправильным путем. Оставьте в покое stdout. Почему вы сначала stderr не попробовали?
 some.py 2>main.log
Чудес не бывает.



Отредактировано doza_and (Март 27, 2021 11:32:06)

Офлайн

#6 Март 27, 2021 15:49:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Сохранение заголовков при подключении к websocket

Видимо, речь про этот сторонний модуль идёт
https://pypi.org/project/websocket-client/
https://websocket-client.readthedocs.io/en/latest/

Novichet924
Как их сохранить в файл для дальнейшего анализа?
Над скриптом напиши обёртку, которая его запускает и вывод перенаправляет в файл. Это будет самым разумным. Если модуль этого не позволяет делать, то не надо в скрипт писать костыли. Лучше написать второй скрипт, который отвечает за сохранение вывода, который изнутри сохранить невозможно.



Отредактировано py.user.next (Март 27, 2021 15:49:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version