刚上高一,家里送了台电脑,自学 PYTHON,遇到转码的问题,请教大家~~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
andmspy
V2EX    Python

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

  •  
  •   andmspy 2016-07-03 20:31:14 +08:00 4308 次点击
    这是一个创建于 3390 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码如下: 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>

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

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


    get 之后加
    r.encoding = 'utf-8'
    GreatMartial
        19
    GreatMartial  
       2016-07-06 21:06:59 +08:00
    小伙子,小心到时候同学的家长找到你...
    Owenjia
        20
    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
    practicer
        21
    practicer  
       2016-07-09 13:27:17 +08:00
    小伙子,有出息
    necomancer
        22
    necomancer  
       2016-07-29 07:46:51 +08:00
    print(soup.title.string.encode('latin-1').decode('utf-8')),编码不对啊
    美女私房照_美女,写真,清纯,少女_私房照|美女私房照_美女写真,少女清纯写真照
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4258 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 04:10 PVG 12:10 LAX 21:10 JFK 00:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86