我已经设置了一个脚本,可以在Python中使用urllib2下载mp3。
url = 'example.com'
req2 = urllib2.Request(url)
response = urllib2.urlopen(req2)
#grab the data
data = response.read()
mp3Name = "song.mp3"
song = open(mp3Name, "w")
song.write(data) # was data2
song.close()
原来,这与我在Windows或当前的Python版本上下载它有某种关系。我在Ubuntu发行版上测试了代码,并且mp3文件下载得非常好...因此,我只使用了简单的
urllib2.openurl
方法,就可以完美运行!总结一下:
urllib2.openurl
。 有谁知道是什么原因导致在Windows框上运行代码的奇怪问题?我不知道为什么在Windows上下载时会破坏mp3?
最佳答案
尝试二进制文件模式。 open(mp3Name, "wb")
您可能正在获得行尾翻译。
该文件是二进制的,是的。不是这种模式。打开文件时,可以将其设置为作为文本文件读取(默认设置)。执行此操作时,它将转换行尾以匹配平台。在Windows上,行尾是\r\n
。在大多数其他地方,它是\r
或\n
。此更改使数据流困惑。
关于python - 在Windows中使用Python下载Mp3会破坏歌曲,但是在Linux中则不会,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3878882/