如何在Python中读取连续的HTTP流数据?

jac*_*ack 4 python streaming client stream

如何在python中从HTTP流媒体服务器读取二进制流.我做了一个搜索,有人说urllib2可以完成这项工作,但有阻塞问题.有人建议使用Twisted框架.

我的问题是:

  1. 如果它只是一个流媒体客户端读取后台数据,我可以忽略urllib2引起的阻塞问题吗?

  2. 如果urllib2无法赶上流媒体服务器会发生什么?数据会丢失吗?

  3. 如果流媒体服务器在检索数据之前需要通过GET或POST一些参数的用户身份验证,可以通过urllib2完成吗?

  4. 我在哪里可以找到urllib2和Twisted的一些流客户端示例?

谢谢.

插口

Ale*_*lli 6

为了打败urllib2的内在缓冲,你可以做到:

import socket
socket._fileobject.default_bufsize = 0
Run Code Online (Sandbox Code Playgroud)

因为它socket._fileobject实际上缓冲在下面.无论如何都不会丢失任何数据,但是使用默认缓冲(一次8192个字节)数据可能会因为实时流式传输而过度分块(完全删除缓冲可能会影响性能,但您可以尝试更小的块).

对于Twisted,请参阅twisted.web2.stream及其中的许多链接.