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
omg21
V2EX  ›  Python

Python3 中获取网站的头信息,为什么显示不全?

  •  
  •   omg21 · 2016-03-31 00:13:52 +08:00 · 2453 次点击
    这是一个创建于 3163 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用这段代码来获取网站的头信息,用来判断网页的文字编码,
    import urllib.request
    f = urllib.request.urlopen('http://www.163.com')
    print (f.info())
    能够识别出网易的文字编码是 GBK ,显示:
    Content-Type: text/html; charset=GBK
    但是换成了中华网时在头信息里就没有了文字编码信息,这是怎么回事呢?
    如果不用 urllib.request 的 info(),其他的还有什么方法能够获得网站的文字编码?
    对了,我用的是 python3.4 ,我知道在 python2 中可以使用 chardet 库,但现在还没有 chardet 的 3 版本。
    5 条回复    2016-03-31 21:50:44 +08:00
    wlsnx
        1
    wlsnx  
       2016-03-31 10:19:20 +08:00
    头信息是网站返回给你的, html 的 head 里面应该也有编码。
    omg21
        2
    omg21  
    OP
       2016-03-31 18:34:53 +08:00
    @wlsnx 两个网站的页面文件里都有编码信息,但用 info()取的信息里有一个没有,我就是这里不明白,明明网页文件里有的,为什么信息里没有。
    V2EX 好像没法贴图啊,能贴图就直观些了。
    omg21
        3
    omg21  
    OP
       2016-03-31 18:39:53 +08:00
    @wlsnx 而且我现在就需要判断头信息里的文字编码,因为如果不判断出来,就没法用正则表达式啊。我知道你的意思是从页面文件里取,但是在没有得到编码前,没办法转码啊,没法转码就没法用正则表达式,没法用下则表达式就取不出来页面。。。
    wlsnx
        4
    wlsnx  
       2016-03-31 19:53:54 +08:00
    头信息是网站返回给你的,甚至可以连 Content-Type 这一行都没有。获取不到编码的话,你可以按顺序尝试常用编码。
    omg21
        5
    omg21  
    OP
       2016-03-31 21:50:44 +08:00
    @wlsnx 你的意思是用各种编码挨个试?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3603 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.