我正在尝试使用python从web-scraping导出文本。但是,结果显示:
> 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。
添加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))
我希望这有帮助。