客户端浏览器识别网页编码主要从两个地方来进行解析。
1. http 响应头的
iis7站长之家字段。从headers中提取编码字段的代码:
from urllib.request import *
f = urlopen('http://www.baidu.com')
print (f.info())
contype = f.headers['Content-Type']
pos = contype.find('=')
if -1 != pos:
contype = contype[pos+1:len(contype)]
print (contype)
2. html网页的<head>中的<meta>的属性http-equiv值为content-type项。
从网页<meta>中获取网页编码的python代码如下:
from urllib.request import *
import re
url='http://www.baidu.com'
s = urlopen(url).read()
m_charset = re.search('<metas*http-equiv="?Content-Type"? content="text/html;s*charset=([wd-]+?)"', s.decode("ISO-8859-1"), re.IGNORECASE)
print(m_charset.group(1))
3.注意事项:
中文GB类型的编码包括GBK,GB2312和GB18030等几种不同的表示法,因此需要仔细判断。
以上示例代码在Windows 7下的python 3.3.0版本测试通过。
以上代码仅作示范原理的演示代码,在实际产品环境中需进行进一步改进。
如转载本文,请注明出处http://www.169it.com