Warnung: Einige Zeichen konnten nicht entschlüsselt werden, und wurden ersetzt durch die ERSATZ-ZEICHEN

Ich bin erstellen Sie ein Skript zum download einige mp3-podcasts, die von einer Website aus und schreiben Sie Sie auf einen bestimmten Standort. Ich bin fast fertig, und die Dateien werden heruntergeladen und erstellt. Allerdings bin ich im laufen in ein problem, in denen die binären Daten können nicht vollständig decodiert und die mp3-Dateien nicht Abspielen.

Hier ist mein code:

import re
import os
import urllib2
from bs4 import BeautifulSoup
import time

def getHTMLstring(url):
    html = urllib2.urlopen(url)
    soup = BeautifulSoup(html)
    soupString = soup.encode('utf-8')
    return soupString

def getList(html_string):
    urlList = re.findall('(http://podcast\.travelsinamathematicalworld\.co\.uk\/mp3/.*\.mp3)', html_string)
    firstUrl = urlList[0]
    finalList = [firstUrl]

    for url in urlList:
        if url != finalList[0]:
            finalList.insert(0,url)

    return finalList

def getBinary(netLocation):
    req = urllib2.urlopen(netLocation)
    reqSoup = BeautifulSoup(req)
    reqString = reqSoup.encode('utf-8')
    return reqString

def getFilename(string):
    splitTerms = string.split('/')
    fileName = splitTerms[-1]
    return fileName

def writeFile(sourceBinary, fileName):
    with open(fileName, 'wb') as fp:
        fp.write(sourceBinary)



def main():
    htmlString = getHTMLstring('http://www.travelsinamathematicalworld.co.uk')
    urlList = getList(htmlString)

    fileFolder = 'D:\\Dropbox\\Mathematics\\Travels in a Mathematical World\\Podcasts'
    os.chdir(fileFolder)

    for url in urlList:
        name = getFilename(url)
        binary = getBinary(url)
        writeFile(binary, name)
        time.sleep(2)



if __name__ == '__main__':
    main()

Wenn ich den code ausführen möchte, bekomme ich folgende Warnung in meiner Konsole:

ACHTUNG:root:Einige Zeichen konnten nicht entschlüsselt werden, und wurden ersetzt durch ERSATZ-CHARAKTER.

Ich denke, dass es hat zu tun mit der Tatsache, dass die Daten, die ich verwende, ist in UTF-8 kodiert, und vielleicht die write-Methode erwartet eine andere Codierung? Ich bin neu in Python (und wirklich auf die Programmierung im Allgemeinen), und ich bin stecken.

Zeigen Sie uns Ihre trackback und uns sagen, wo der Fehler genau Auftritt. Und dann herauszufinden, die problematische Zeichenkette unter Verwendung der pdb-oder debug-Meldungen, die das problem verursacht.
Durch traceback, meinst du, dass die Fehlermeldungen, die pop-up in der Konsole? Wenn dem so ist, das war das problem... das Programm wurde normal läuft und der Erstellung der Dateien, so dass Sie nicht scheinen, wie es war nichts falsch. Der einzige text, der auf der Konsole ausgegeben wurde, war die Warnung, die ich in meinem ursprünglichen post.
Ja, das ist die traceback...

InformationsquelleAutor Euclid's Compass | 2013-02-23

Schreibe einen Kommentar