Python中的Selenium / BeautifulSoup Webscraper保持UnicodeEncodeError

时间:2016-05-10 22:45:09

标签: python selenium web-scraping beautifulsoup python-unicode

所以我有一个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中出现空白,我认为是因为我的小命令提示符窗口也无法显示它。那么如何打败这个令人不快的问题呢?任何帮助再次非常感谢。或者如果你能指出我解决问题的线程,那也值得赞赏。关于这一特定主题有很多线索,很难找到“正确答案”。

1 个答案:

答案 0 :(得分:0)

使用&#39; wb&#39;编写文件属性允许我避免上面提到的错误。 HT Adam Van Prooyen。谢谢你的帮助!