Python中的Selenium/beautifulsoupwebscraper保持UnicodeEncodeE

2024-09-30 00:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我有一个webscraper启动并运行,对于某些页面,我的代码运行良好,但对于其他页面(必须包含特殊字符),当我去将页面写入文件时,它不会这样做,因为我得到可怕的UnicodeEncodeError。我尝试了很多解决方案,包括UnicodeDammit,还使用了.encode('utf-8','ignore')方法,所有真正的程序员都不喜欢这种方法,因为它只会抛出数据。问题是,我仍然不知道如何修复我的代码。啊,一个新手程序员的快乐!那么你的大师们对如何解决这个问题有什么想法吗?你知道吗

有问题的代码就在这里(假设我已经导入了必要的东西并定义了变量,因为我已经导入了)。你知道吗

LBfull = browser2.page_source
LBfullsoup = BeautifulSoup(LBfull, 'html.parser', from_encoding='UTF-8')


LBfileready = str(LBfullsoup.prettify())
unicodedata.normalize('NFKD', LBfileready).encode('utf-8','ignore')
file = open('D:/PATH/'+date+citynames[i]+'LB.txt', 'w')
file.write(LBfileready)
file.close()

可怕的回溯就在这里:

回溯(最近一次呼叫):

File "fitbitloop.py", line 95, in <module>
    file.write(LBfileready)
  File "C:\python351\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1209190-
1209191: character maps to <undefined>

看来不管我做了什么,我都不能摆脱这个错误。是否有某种错误检查代码可以用来抛出映射到的字符。我的网站是全球性的,所以可以承认有各种各样的特殊字符。因为我不能写入文件,所以我无法查找有问题的字符。当我从字符串中请求它时,它在python shell中是空白的,我假设这是因为我的小命令提示符窗口也不能显示它。那么我该如何克服这个令人不快的问题呢?再次感谢您的帮助。如果你能给我指出解决问题的线索,我也会很感激的。关于这一特定主题的线索太多,很难找到“正确答案”


Tags: 文件方法代码in页面utfencodefile

热门问题