刚上高一,家里送了台电脑,自学 PYTHON,遇到转码的问题,请教大家~~

2016-07-03 20:31:14 +08:00
 andmspy

代码如下: import requests from bs4 import BeautifulSoup

url = 'http://www.mnsfz.com/'

r = requests.get(url) soup = BeautifulSoup(r.text, 'lxml') print(soup.title)

输出:

<title>乱码乱码乱码乱码乱码乱码乱码乱码乱码乱码(论坛不能含有特殊字符)</title>

网页 charset 为‘ utf-8'

试过 decode('utf-8').encode('gbk') 输出: <built-in method title of str object at 0x03DC14F0>

请教如何输出纯中文字符 ‘美女私房网,美女图片,美女写真,性感美女,清纯少女,私房照,模特写真,模特私房’ 谢谢。

3777 次点击
所在节点    Python
22 条回复
sexoutsex2011
2016-07-03 20:41:26 +08:00
小伙有出息。
aheadlead
2016-07-03 20:48:22 +08:00
(大哥你这个美女私房啥的真是服
qiaoqinqie
2016-07-03 20:58:43 +08:00
控制台输出吗 那就设置编码
在代码前面加
import sys
reload(sys)
sys.setfefaultencoding('utf-8')
andmspy
2016-07-03 21:02:36 +08:00
@qiaoqinqie
python3 也是这样写么?
要不要修改什么的?
andmspy
2016-07-03 21:08:38 +08:00
各位大哥,同学们有需求,我必须满足大家的期待,不过小白一枚,只能挑灯夜读,攻克每个难关。
cdlnls
2016-07-03 21:15:08 +08:00
@qiaoqinqie
sys.setdefaultencoding('utf-8')
打错了一个字母
billlee
2016-07-03 21:17:46 +08:00
估计是网页声明的 charset 就有问题,试试这下面几个吧
soup.title.string.encode('utf-8').decode('gbk')
soup.title.string.encode('latin-1').decode('gbk')
soup.title.string.encode('latin-1').decode('utf-8')
chevalier
2016-07-03 21:34:18 +08:00
r = requests.get(url)
这个 r 对象,有 encoding 方法,按照网页 charset 试一下
r.encoding('utf8')
ioven
2016-07-03 21:39:02 +08:00
貌似 requests 自动解码出错,手动解码没问题
py3 , r.content.decode('utf-8')
mingyun
2016-07-03 22:47:58 +08:00
r = requests.get(url)
r.encoding = r.apparent_encoding
chimingphang
2016-07-03 22:54:11 +08:00
我知道该同学挑灯夜战,为日后抓种子造福全班男同学努力中
liangmishi
2016-07-04 02:15:32 +08:00
加一句 r.encoding="utf-8"
就完事了
aitaii
2016-07-04 08:48:21 +08:00
可以,这很美女私房照。
playniuniu
2016-07-04 09:11:04 +08:00
你先看看 r.text 乱码吗
singer
2016-07-04 12:36:50 +08:00
import requests from bs4 import BeautifulSoup
url = 'http://www.mnsfz.com/'
r = requests.get(url)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'lxml')
print(soup.title)
jiangbingo
2016-07-04 14:34:38 +08:00
码的问题好解决,阅遍天下XX自然无码。
andmspy
2016-07-05 19:18:25 +08:00
谢谢各位大哥的回答,小弟代表全班同学感谢大家。:)
sqlfeng
2016-07-06 09:43:18 +08:00
import sys
reload(sys)
sys.setfefaultencoding('utf-8')


get 之后加
r.encoding = 'utf-8'
GreatMartial
2016-07-06 21:06:59 +08:00
小伙子,小心到时候同学的家长找到你...
Owenjia
2016-07-08 23:47:34 +08:00
不推荐使用 setfefaultencoding ,这里用 BeautifulSoup(res.content) 应该可以正常显示的。


FYI:
http://stackoverflow.com/questions/3828723/why-should-we-not-use-sys-setdefaultencodingutf-8-in-a-py-script

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

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

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

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

© 2021 V2EX