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

2016-03-31 00:13:52 +08:00
 omg21
我用这段代码来获取网站的头信息,用来判断网页的文字编码,
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 版本。
2402 次点击
所在节点    Python
5 条回复
wlsnx
2016-03-31 10:19:20 +08:00
头信息是网站返回给你的, html 的 head 里面应该也有编码。
omg21
2016-03-31 18:34:53 +08:00
@wlsnx 两个网站的页面文件里都有编码信息,但用 info()取的信息里有一个没有,我就是这里不明白,明明网页文件里有的,为什么信息里没有。
V2EX 好像没法贴图啊,能贴图就直观些了。
omg21
2016-03-31 18:39:53 +08:00
@wlsnx 而且我现在就需要判断头信息里的文字编码,因为如果不判断出来,就没法用正则表达式啊。我知道你的意思是从页面文件里取,但是在没有得到编码前,没办法转码啊,没法转码就没法用正则表达式,没法用下则表达式就取不出来页面。。。
wlsnx
2016-03-31 19:53:54 +08:00
头信息是网站返回给你的,甚至可以连 Content-Type 这一行都没有。获取不到编码的话,你可以按顺序尝试常用编码。
omg21
2016-03-31 21:50:44 +08:00
@wlsnx 你的意思是用各种编码挨个试?

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

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

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

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

© 2021 V2EX