2013-07-01 2 views
-1

У меня есть этот код (предупреждаю: на содержание URL только для взрослых!)Почему я получаю «UnicodeEncodeError»?

# Encoding: UTF-8 

import re 
import requests 
# import chardet 

html = requests.get('http://klonedaset.org/news.php?sid=51854&bn=luRsF2aAa6eV63nU71Jm&ad=0&ref=&pt=&cookie=null&cls=null').text 
text = re.findall('target=_blank id=.*?>(.*?)</a>', html)[0] 
# print chardet.detect(text) return this "{'confidence': 0.9599621544520228, 'encoding': 'windows-1251'}" 

open('file12.txt', 'a').write(text) 

И я получаю эту ошибку на последней строке (где я пишу в файле)

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 

Я пытаюсь например,

html = html.decode(windows-1251').encode('UTF-8') 

Но это не работает. Я должен написать файл в UTF-8!

ответ

-1
open('file12.txt', 'ab').write(text) 

Вам необходимо открыть его для записи в двоичном формате. Лучше использовать:

import codecs 
file = codecs.open('file12.txt', mode="wb", encoding="utf-8") 
+0

Также URL-адрес странный, он создает сломанную страницу. –

+0

meh .. Я просто попадаю на сайт с высоким риском заражения хром ... но я решил, что рассмотрю вопрос, который он видел –

+0

Я не блокирую этот сайт или нет, но там вы можете увидеть один рисунок и текст в windows-1251 , Кроме того, дорогой Джоран, в файл, пишущий что-то вроде этого: «Сон» :( –

Смежные вопросы