2017-11-24 1 views
0

Ich erstelle einen Scraper, der alle Kommentare in einer URL-Seite kratzt und ich speichern den Text in einer TXT-Datei (1 Kommentar = 1 TXT). Jetzt habe ich ein Problem, wenn einige Emoji im Text eines Kommentars sind. In der Tat stoppt das Programm und sagt "UnicodeEncodeError: 'charmap' Codec kann das Zeichen nicht codieren". Wie kann ich dieses Problem bestehen? (Ich verwende BS4)Wie man Emoji übergibt einen Text in Phyton mit bs4

Die Struktur des Codes ist wie folgt:

q=requests.get(url) 
soup=BeautifulSoup(q.content, "html.parser") 
x=soup.find("a", {"class":"comments"}) 
y=x.find_all("div", {"class":"blabla"}) 
i=0 
for item in y: 
    name=str(i) 
    comment=item.find_all("p") 
    out_file=open('%s.txt'%CreatorName, "w")   
    out_file.write(str(comment) 
    out_file.close 
    i=i+1 

Vielen Dank an alle.

+0

out_file = offen ('% s.txt'% name, "w") – SerpeVerde

Antwort

0

Meine Vermutung ist, dass Sie auf Windows sind. Ihr Code funktioniert perfekt unter Linux. So ändern Sie die Codierung auf die Datei öffnen, die Sie utf-8 wie folgt aus:

out_file=open('%s.txt'%CreatorName, "w", encoding='utf-8') 

Dies ist auf die Datei ohne Fehler schreiben sollte, obwohl die Emojis nicht richtig im Editor angezeigt werden können Sie es jederzeit in FireFox öffnen kann oder eine andere Anwendung wenn Sie das Emoji sehen möchten. Anderer Kommentartext sollte jedoch im Editor lesbar sein.

Verwandte Themen