首页 文章

UnicodeEncodeError:'charmap'编解码器可以't encode character ' \ x97'位置206:字符映射到<undefined>

提问于
浏览
1

Windows 7版本Python36-32代码目的:解析网站

你能告诉我,错误的可能原因是什么?我在开头包含编码utf-8,并在函数“open”中包含(encoding ='windows_1252',errors ='replace')它帮助我在其他类似的其他网站的解析器中,但对于这个不起作用

**一段代码:

# cycle through pages
     for i in range (count):
         s = str (i + 1)
         print (s, end = '')
         # make url
         url = url1 + s + url2 + str (status) + url3
         # get html file from server by url
         r = requests.get (url)
         # open file to save with full path to file name
         name = path + 'upload' + s + '.html'
         f = open (name, 'w', encoding = 'windows_1252', errors = 'replace')
         # save url data to file
         f.write (r.text)
         # close file
         f.close ()
         # download files through the list
         parseList (name, s + '.html')

     print ()
     return

错误文字:

Traceback (most recent call last):
  File "C:\Users\u6030283\Desktop\FINAM\finam_parser_new.py", line 478, in <module>
    parse('list', 'html', 'XS1272198265')
  File "C:\Users\u6030283\Desktop\FINAM\finam_parser_new.py", line 262, in parse
    f.write(r.text)
  File "C:\Users\u6030283\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x97' in position 206: character maps to <undefined>

1 回答

  • 0

    更新:

    问题不是来自上面的代码(写文件),而是 parse()parseList() 方法或读取文件 .

    替换以下内容

    # in parseList(...)
    text = open(url, 'r')
    
    # and in parse(..)
    text = open(path + file, 'r')
    

    # in parseList(...)
    text = open(url, 'r', encoding='windows_1252')
    
    # and in parse(..)
    text = open(path + file, 'r', encoding='windows_1252')
    

    并且不要忘记将上述问题中的代码恢复到原始状态 .

相关问题