Python3 编码问题

2016-11-15 01:12:31 +08:00
 domino

我的系统为繁体中文 Win7 64bit / Python35 (32bit)
不知道为何下列程序,遇到简体,执行后会有错误.
请问该怎解决呢?

程序码

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://home.baidu.com/")
soup = BeautifulSoup(html , "lxml")
print(soup.title);

错误如下

C:\py>hellokitty.py
Traceback (most recent call last):
  File "C:\py\hellokitty.py", line 5, in <module>
    print(soup.title);
UnicodeEncodeError: 'cp950' codec can't encode character '\u5173' in position 7:
 illegal multibyte sequence
4706 次点击
所在节点    Python
26 条回复
imcocc
2016-11-15 15:46:03 +08:00
@domino 你是下载个 pycharm 社区版的 免费。功能够用。 能省很多事。
domino
2016-11-15 20:26:30 +08:00
@imcocc 感谢,目前使用 IDLE (Python 3.5 32-bit).
Arthur2e5
2016-11-16 02:21:09 +08:00
@domino chcp 65001 *就是* 你在找的通用方法,句号。

@mahone3297 人生苦短,多手动用 u"你好中文"(当然用 __future__ unicode_literals 也是好事。)
practicer
2016-11-16 10:46:05 +08:00
解决响应文本编码问题, 用 requests 包更方便

import requests
from bs4 import BeautifulSoup
html = requests.get("http://home.baidu.com/")
soup = BeautifulSoup(html.content.decode('utf-8'), "lxml")
print(soup.title);
domino
2016-11-16 15:33:50 +08:00
@practicer
这还是不能,
你的系统是简体,你去抓个繁体网页看看.
应该会出错.
Septembers
2016-11-16 17:18:26 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/320544

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX