鱼C论坛

 找回密码
 立即注册
查看: 442|回复: 1

[已解决]053讲关于查看网站的编码

[复制链接]
发表于 2019-3-13 19:35:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这段代码用来检测指定 URL 的编码
import urllib.request  
import chardet

def main():
    url = input("请输入URL:")

    response = urllib.request.urlopen(url)
    html = response.read()

    # 识别网页编码
    encode = chardet.detect(html)['encoding']
    if encode == 'GB2312':
        encode = 'GBK'

    print("该网页使用的编码是:%s" % encode)
        
if __name__ == "__main__":
    main()

运行程序后是
请输入URL:https://fishc.com.cn
该网页使用的编码是:Windows-1254

但是我查看网页的源代码里面写的是<meta http-equiv="Content-Type" content="text/html; charset=gbk" />,应该是gbk编码啊,为啥程序检测显示的是Windows-1254

最佳答案
2019-3-13 19:52:30
源码头中的编码不一定正确,网页加密传输后不可能是源码头中的编码。

所以识别后的编码为准,chardet识别可能也有很大的误差,推荐使用cchardet
代码:
  1. import urllib.request  
  2. import cchardet

  3. def main():
  4.     url = input("请输入URL:")

  5.     response = urllib.request.urlopen(url)
  6.     html = response.read()

  7.     # 识别网页编码
  8.     enc = cchardet.detect(html)
  9.     enc = enc['encoding']
  10.    
  11.     print("该网页使用的编码是:%s" % enc)
  12.         
  13. if __name__ == "__main__":
  14.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-13 19:52:30 | 显示全部楼层    本楼为最佳答案   
源码头中的编码不一定正确,网页加密传输后不可能是源码头中的编码。

所以识别后的编码为准,chardet识别可能也有很大的误差,推荐使用cchardet
代码:
  1. import urllib.request  
  2. import cchardet

  3. def main():
  4.     url = input("请输入URL:")

  5.     response = urllib.request.urlopen(url)
  6.     html = response.read()

  7.     # 识别网页编码
  8.     enc = cchardet.detect(html)
  9.     enc = enc['encoding']
  10.    
  11.     print("该网页使用的编码是:%s" % enc)
  12.         
  13. if __name__ == "__main__":
  14.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 10:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表