推荐学习书目
› 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 · Jul 3, 2016 · 5105 views
    This topic created in 3782 days ago, the information mentioned may be changed or developed.

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


    get 之后加
    r.encoding = 'utf-8'
    GreatMartial
    GreatMartial
    Jul 6, 2016
    19
    小伙子,小心到时候同学的家长找到你...
    Owenjia
    Owenjia
    Jul 8, 2016
    20
    不推荐使用 setfefaultencoding ,这里用 BeautifulSoup(res.content) 应该可以正常显示的。


    FYI:
    http://stackoverflow.com/questions/3828723/why-should-we-not-use-sys-setdefaultencodingutf-8-in-a-py-script
    practicer
    practicer
    Jul 9, 2016
    21
    小伙子,有出息
    necomancer
    necomancer
    Jul 29, 2016
    22
    print(soup.title.string.encode('latin-1').decode('utf-8')),编码不对啊
    美女私房照_美女,写真,清纯,少女_私房照|美女私房照_美女写真,少女清纯写真照
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   927 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 20:57 · PVG 04:57 · LAX 12:57 · JFK 15:57
    ♥ Do have faith in what you're doing.