当我尝试导出 CSV 文件时出现 Unicode 错误(网络抓取,我使用的是 Beautifulsoup 并同时导入了 CSV 和 Beautifulsoup)。该代码由完全支持 UTF-8 的 Mac Linux 使用,但我使用的是 Windows。错误显示为
> 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
适用于 Mac 的原始代码是:
def get_page(url):
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
mainpage = response.read().decode('utf8')
return mainpage
我尝试在工作表的开头解码 cp1252 并编码 UTF-8:
def get_page(url):
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
mainpage = response.read().decode('cp1252').encode('utf8')
return mainpage
但它不起作用。请帮助。