我正在尝试做的事情:我从数据库中获取 uri 列表并下载它们,
删除停用词并计算这些词在网页中出现的频率,
然后尝试保存在mongodb中。
问题:当我尝试将结果保存到数据库中时出现错误
bson.errors.invalidDocument:文档必须是有效的 utf-8
它似乎与代码“\xc3someotherstrangewords”、“\xe2something”相关
当我处理网页时,我尝试删除标点符号,但我无法删除重音符号,因为我会得到错误的单词。
我已经尝试过的我尝试通过网页的标题识别字符编码
我尝试过使用 chardet
利用 re.compile(r"[^a-zA-Z]") 和/或 unicode(variable,'ascii', 'ignore');
这对非英语语言不利,因为它们会删除重音符号。
我想知道的是:
有人知道如何识别字符并翻译成正确的单词/编码吗?
例如从网页“\xe2”获取此内容并翻译为“â”
(英语不是我的母语所以请原谅我)
编辑:如果有人想看源代码 https://github.com/raphaeljlps/ProjetoIC/
找出网站的正确字符编码并不容易,因为标头中的信息可能是错误的。美丽汤 http://www.crummy.com/software/BeautifulSoup/bs4/doc/在猜测字符编码并自动将其解码为 Unicode 方面做得非常好。
from bs4 import BeautifulSoup
import urllib
url = 'http://www.google.de'
fh = urllib.urlopen(url)
html = fh.read()
soup = BeautifulSoup(html)
# text is a Unicode string
text = soup.body.get_text()
# encoded_text is a utf-8 string that you can store in mongo
encoded_text = text.encode('utf-8')
另请参阅以下问题的答案这个问题。 https://stackoverflow.com/questions/1495627/how-to-download-any-webpage-with-correct-charset-in-python
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)