urlopen, BeautifulSoup und UTF-8-Problem

Ich versuche nur, das abrufen einer web-Seite, aber irgendwie eine fremde Figur ist eingebettet in die HTML-Datei. Dieses Zeichen ist nicht sichtbar, wenn ich "View Source".

isbn = 9780141187983
url = "http://search.barnesandnoble.com/booksearch/isbninquiry.asp?ean=%s" % isbn
opener = urllib2.build_opener()
url_opener = opener.open(url)
page = url_opener.read()
html = BeautifulSoup(page) 
html #This line causes error.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 21555: ordinal not in range(128)

Ich auch versucht...

html = BeautifulSoup(page.encode('utf-8'))

Wie kann ich Lesen Sie diese web-Seite in BeautifulSoup ohne diese Fehlermeldung bekommen?

  • Würde der Geist Sie geben den tatsächlichen url?
  • Getan. Wurde versucht zu verhindern, dass code Ausführlicher ist. 🙂
  • Kann ich nicht reproduzieren, funktioniert gut hier. Ich habe abgerufene url, die mit Ihrem code mehrere Male, und es gab niemals ein nicht-ASCII-Zeichen in der Seite.
  • allerdings balpha, Sie wollen nicht auf das verlassen, und über eine remote-URL ändern von Inhalten, damit Ihre Anwendungen Abstürzen. Als eine Regel, remote-URLs jederzeit ändern.
  • Ich bin völlig mit Ihnen auf, dass, aber das erste, was zu entfernen bugs, die versuchen, um Sie zu reproduzieren.
  • es würde interessant sein, zu erhalten eine komplette traceback: die eine, die Sie geben, ist nicht hilfreich 🙂 Auch, welche version des BS sind Sie?

Schreibe einen Kommentar