python - 使用 web python 下载不同语言的网页

标签 python beautifulsoup mechanize

我正在尝试使用 python 中的 Mechanize 模块下载网页(俄语)(我的电脑只使用英语)。我收到以下错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position 50-59

有人可以告诉我如何纠正这些类型的错误或它们的含义吗?

最佳答案

长话短说,您的原始字符串不是用 ASCII 编码的,这意味着在尝试打印字符时,python 不知道该怎么做,因为原始字符代码超出了 ASCII 范围。

这是 ASCII 表及其支持的字符:http://www.asciitable.com/

您可以使用说转换您的字符:
Python - Encoding string - Swedish Letters


或者你可以这样做:

(这是解决很多编码问题的方法)

编辑:C:\Python??\Lib\Site.py将“del sys.setdefaultencoding”替换为“pass”,如下所示:
Like so

然后,
把它放在代码的顶部:

sys.setdefaultencoding('latin-1')

修复瑞典语/非 UTF8 兼容字符的 chalice 。
我不确定 latin-1 是否会覆盖您所有的俄语字符,如果没有,您可能知道一种编码(例如:ISO-8859-15 或其他内容)

关于python - 使用 web python 下载不同语言的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15557897/

相关文章:

python - 如何使用用于 clang 工具的 python 绑定(bind)来判断类/结构是可复制的

python - 如何从源代码编译 CPython python 解释器并为其构建安装程序

python - 如何在 python 的 BeautifulSoup4 中使用 .next_sibling 时忽略空行

Python Requests/BeautifulSoup 访问分页

python - BeautifulSoup 没有提取所有 html

python - Tornado WebSocket on_message 方法中忽略异常

c# - 可续传文件上传

Python Beautiful Soup 'ascii' 编解码器无法编码字符 u'\xa5'

Ruby Mechanize 405 Net::HTTPMethodNotAllowed 错误,同时抓取 Fedex 计费

perl - 如何可视化/美化打印 HTML DOM 树?