Прежде всего позвольте мне выразить благодарность сообществу Stack Overflow - хотя я еще не опубликовал его раньше, я нашел бесчисленные решения моих проблем в прошлом , Я очень ценю время и энергию, которые сообщество инвестирует в создание этого отличного ресурса для всех.Проблема с Python: не удается получить данные хрр-опроса, используя библиотеку запросов
Я пытаюсь получить данные с сервера, который использует Socket.IO в сочетании с данными XHR-опроса. Хотя я могу, похоже, подключиться к скрипту Python, я не могу правильно получать данные.
Я просмотрел исходящие и входящие пакеты в Fiddler: каждые 5 секунд браузер получает полезную информацию (например, «5 ::: {« name »:« pollData »,« args »: [" < .. '), но сценарий Python получает ответы NOOP (' 8 :: ')
Проблемные часть кода:.
reply = requests.get(URL + "/socket.io/1/?t=" + str(long(time.time()*1000)), headers=headers)
session_id = reply.text.split(':')[0]
print "Session ID:", session_id
reply = requests.post(URL + "/socket.io/1/xhr-polling/" + session_id + "?t=" +
str(long(time.time()*1000)), data=message, headers=headers)
print "Successfully subscribed."
for i in range(5):
sleep(5)
reply = requests.get(URL + "/socket.io/1/xhr-polling/" + session_id + "?t=" +
str(long(time.time()*1000)), headers=headers)
print reply.text
Я попытался с помощью WebSocket-клиент, но генерирует эту ошибку: WebSocketException: Статус подтверждения связи 200
SocketIO-клиент производит эту ошибку: SocketIOError: Не удалось установить соединение
Более важно, чем использовать другую библиотеку для решения этой проблемы, я хотел бы понять, почему это происходит. Исходящие пакеты, созданные скриптом и Chrome, выглядят, по крайней мере, непрофессионалу, в основном одинаковые - почему они производят такие разные результаты?
(Пожалуйста можете задать любые вопросы или запросить дополнительную информацию.)
Думаю, вы получите session_id = '0', чтобы получить идентификатор сеанса, который вы можете использовать в последующих запросах. или это «1»? – abourget