Python 从http实时流解析元数据

Python 从http实时流解析元数据,python,http,streaming,metadata,Python,Http,Streaming,Metadata,我想从通过HTTP传输的internet广播中提取信息字符串。信息字符串指的是关于当前播放的歌曲、乐队名称等的简短说明 我最好用python来做。到目前为止,我已经尝试打开一个套接字,但从那里我得到了一堆无法解析的二进制数据 感谢您提供的任何提示听起来您可能需要一些垫脚石项目,然后才能准备好。没有理由对HTTP使用低级套接字库。命令行实用程序和python标准库模块(如urlopen2)都有很好的工具,可以为您处理底层TCP和HTTP细节 您知道数据所在的URL吗?您是否在命令行上尝试过一些简单

我想从通过HTTP传输的internet广播中提取信息字符串。信息字符串指的是关于当前播放的歌曲、乐队名称等的简短说明

我最好用python来做。到目前为止,我已经尝试打开一个套接字,但从那里我得到了一堆无法解析的二进制数据


感谢您提供的任何提示

听起来您可能需要一些垫脚石项目,然后才能准备好。没有理由对HTTP使用低级套接字库。命令行实用程序和python标准库模块(如urlopen2)都有很好的工具,可以为您处理底层TCP和HTTP细节

您知道数据所在的URL吗?您是否在命令行上尝试过一些简单的方法,比如使用cURL获取原始HTML,然后使用grep等基本工具查找您需要的信息?在这里,我假设元数据实际上是以HTML的形式提供的,而不是以二进制格式由无线电拖缆直接读取(可能是flash?)


很难给您提供任何细节,因为您的问题没有包括有关数据源的任何技术细节。

现在我意识到我并不是很具体。我在python中使用过urlopen,过去很少实现WebCrawler之类的东西。但是我在这里谈论的来源不是一个普通的HTTP网站。这是一个HTTP直播流,基本上是一个你可以通过互联网收听的广播。他们可能会流式传输MP3或类似的东西,通过http将其分成块。url是当您在VideoLan player中播放流时,它以某种方式提取字符串元数据,并在其中写入当前歌曲、乐队名称、电台名称等。。它大约有几百个字符长。谢谢:)现在我试着通过webbrowser访问url,只是为了好玩。它显示了一些基本信息,以及歌曲名称!这看起来正是我需要的。。不过,从流中解析它可能更通用,它可能会与Shoutcast之外的其他通道一起工作。因此,任何关于这方面的提示都值得赞赏。返回的HTTP内容类型头是什么?这个IP现在不允许我连接。您可能希望尝试使用firefox Live HTTP headers插件查看HTTP头,或者建立到该端口的telnet连接,并键入手动HTTP
GET/HTTP/1.0
type请求。此收音机中似乎循环了3个地址。现在起作用的是,当我尝试远程登录到82.134.68.82 8666并键入GET请求时,我可以看到一些文本信息(这可能是我想要的),然后可能是二进制数据,无法将其关闭。我尝试在windows中使用>将telnet的输出重定向到一个文件,但没有成功,因此我无法真正分辨流的开头有什么文本。在我发出请求后,telnet窗口就失去了控制。我将尝试使用urlopen,这是输出的顶部。这是一个音频mpeg流,但有冰冷的通知1,冰冷的名称,冰冷的流派标题,有一些信息可以解析。ICY 200 OK ICY-notice1:
此流需要Winamp ICY-notice2:SHOUTcast分布式网络音频服务器/win32 v1.9.2
ICY名称:Gotham Radio-金属的黑暗面(实时聊天、请求、乐队信息)摇滚电台ICY流派:金属-哥特-黑色-交响乐和Powermetal ICY url:内容类型:音频/mpeg ICY pub:1 ICY BR:128