Как решить Unicode ошибки при экспорте в CSV-файл (Python) - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь экспортировать текст из веб-скрапинга, используя python. Однако результат показывает это:

> UnicodeEncodeError Traceback (most recent call last) in () 71
> 'ranking_title': ranking_title, ---> 72 'ranking_category':
> ranking_category}) 73
> 
> ~\Anaconda3\lib\csv.py in writerow(self, rowdict) 154 def
> writerow(self, rowdict): --> 155 return
> self.writer.writerow(self._dict_to_list(rowdict)) 156
> 
> ~\Anaconda3\lib\encodings\cp1252.py in encode(self, input, final) 18
> def encode(self, input, final=False): ---> 19 return
> codecs.charmap_encode(input,self.errors,encoding_table)[0] 20
> 
> UnicodeEncodeError: 'charmap' codec can't encode characters in
> position 299-309: character maps to

В чем может быть моя ошибка? Я мог экспортировать в CSV-файл с текстом, который я однажды удалил, но когда я попробовал в другой день, это ошибка.

Ps. Я уже импортировал Beautifulsoup и CSV в начале рабочей книги.

1 Ответ

0 голосов
/ 09 сентября 2018

Добавьте блок try-catch для проверки Unicode:

try:
    to_unicode = unicode
except NameError:
    to_unicode = str

# requests the URL
site = requests.get('specify URL')

# decodes the string using the codec registered for encoding.

data = site.content.decode('utf-8')

# use Beautiful Soup for scraping
Soup = BS(data, 'lxml')

В конце, при записи в файл убедитесь, что запись в Unicode:

file.write(to_unicode(data))

Надеюсь, это поможет.

...