【问题标题】:pyCURL download and get content from mp3 filepyCURL 下载并从 mp3 文件中获取内容
【发布时间】:2014-06-12 10:30:09
【问题描述】:

我正在尝试从下载的文件中获取内容。如果我保存像 .mp3 这样的文件,它甚至可以播放。但是当我得到内容时,会有很多“可怕”的字符,即 (û dInfo.ð"""".....::::EEEEEQQQQ]]]]]hhhhttttt¢¢¢¢®®®®®ººººÅÅÅÅÅÅÑÑÑÑÑÝÝÝÝÝèèèèèôôôôôÿÿÿÿÿ :LAME3.96r´.l4 $N .ð]Ú5ÿû d Ô|c½i4BGçá"ʹU§ a0pTìÌ xà0 +£â?=yÃkðý§ýÛußAfØÿ®ÙBDgøQÊ0£a=¹ OTG@ )É ÄN¨hÎDMWQÛ0wmrÛA MdCeÞ9:!b>¢~Ú½´&ÞýÛ/¿h­·{þ>Åï²{·w±Ä,ÅõtewßS©?Ï'è! p@lHåÀ1üoù!c Aæø?Íæ0#äzôüÿsì§òp}o¾Ðn¨:Ð À@1®-0¦ ÐËÛþÐ褹À~! êõCÄâr+Ççú!ɱA3uå^O¦I÷'ív(µ~ÉNÎ~8æÙøÕ+X y¬gt}êÑ3xk¿½ÞZ÷]ë^ÖÅ¢}åýíªn¾?µ)_{×ÇÎÿÝ>ÿzÞ>wÿß¾5﬿»ü}z}kDtwk)Ó=Ú[ÿzfXÞµ%q Gŧ~(°Ë%¬ ǺJùÝÇá3JBĸÑâ·Ê!W²qll°¡WÎÚRÕ¨âU0BD$F$ÅÕÀèûÏ*©l^Î¥¢3ëÿû¢d¬LY~s`AJ@Á%ù 4¨ËÍ;3sB½²ý»é ¨murz{S0Ühà @Qö0Â(ÚFíê9(øi¸ò½¸~äÌ]ï¼a b°±±§Rióÿ÷·±O?Ã?:3£M20 /ÿÿÿçßîzöDIþï_ÿÿÿÿú±c>a¾¨2e ÁÙ£¯ÿÿÿÿÿÿÿÿÿÿÿ! []h1EOFðKçYwA%ÜSԾó":9Ç5 RþèvC?7òEWÔ´üJdzcKÿÿTdp Lï¬DÆØ£Rm7£Ww·´ÅUeé¢hÇRî÷ @\uä«À#¿6òXµËÖÿ+U Oó}å-) 这是我的代码:

    fp = open('audio.txt', "wb")
    ch = curl.Curl()

    ch.setopt(curl.URL, url)
    ch.setopt(curl.TRANSFERTEXT, True)
    ch.setopt(curl.AUTOREFERER, True)
    ch.setopt(curl.FOLLOWLOCATION, True)
    ch.setopt(curl.POST, False)
    ch.setopt(curl.HTTPHEADER, ['REMOTE_ADDR:' + self.ip, 'HTTP_X_FORWARDED_FOR:' + self.ip])
    ch.setopt(curl.USERAGENT, self.useragent)
    ch.setopt(curl.CONNECTTIMEOUT, self.connect_timeout)
    ch.setopt(curl.TIMEOUT, self.curl_timeout)
    ch.setopt(curl.SSL_VERIFYPEER, False)
    ch.setopt(curl.COOKIE, "JSESSIONID=" + sessionid)
    ch.setopt(curl.WRITEDATA, fp)
    try:
        result = ch.perform()
    except curl.error as error:
        #errno, errstr = error
        ch.close()
        return 'Ошибка считывания mp3 файла с сервиса ФМС.'
    fp.close()
    with open('audio.txt', 'r', encoding = "ISO-8859-1") as content_file:
        content_file.seek(0)
        content = content_file.read()
    return content

如何获取普通字符(UTF8 格式)?谢谢。

【问题讨论】:

  • MP3 不是睡前阅读的文本格式,它是适合您的 MP3 播放器口味的二进制格式。因此,即使转换为 UTF-8,您也会在那里得到可怕的字符。
  • 我认为您应该更多地了解文件和文件格式的实际含义。诸如“如何将 mp3 读取为 UTF-8 文本?”之类的问题。或“如何在 mp3 播放器中收听 PDF?”像“音乐的颜色是什么?”一样没有意义。

标签: python fread pycurl


【解决方案1】:

尝试删除 ch.setopt(curl.TRANSFERTEXT, True),因为 mp3 是二进制的。

之后将 fp = open('audio.txt', "wb") 更改为 fp = open('audio.mp3', "wb")
现在您将在磁盘上保存正确的 mp3。 然后尝试使用以下

import mp3play
filename = r'audio.mp3'
mp3 = mp3play.load(filename)
mp3.play()

你应该已经安装了 mp3play 包。

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多