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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler ist wohl tatsächlich passiert, wenn Sie versuchen, um drucken die Darstellung der BeautifulSoup-Datei, die automatisch geschieht, wenn, wie ich vermute, Sie arbeiten in der interaktiven Konsole.
Können Sie Folgendes versuchen :
Stieß ich auf ein ähnliches problem mit bs4