美文网首页
Python网站爬虫编写中字符编码的解决方案分享

Python网站爬虫编写中字符编码的解决方案分享

作者: 想看看世界喵 | 来源:发表于2016-03-26 16:09 被阅读0次

    问题介绍

    问题1:常用网站的编码格式有哪些?

    答:utf-8,GB2312,GBK等

    国内常用网站的字符编码

    问题2:这些字符集有什么区别?

    答:请见我的另外一篇文章

    问题3:在抓取不同编码网站时,有什么比较好的解决思路吗?

    答:先解析网站编码格式,然后使用编码转换,一般转成utf-8


    工具介绍

    名称:chardet模块

    下载地址:chardet 2.3.0 : Python Package Index

    功能:编码识别


    实际应用

    1.解析少量信息

    import chardet
    import urllib
    TestCodes = urllib.urlopen('http://www.baidu.com/').read()
    print chardet.detect(TestCodes)
    
    
    运行结果:
     {'confidence': 0.99, 'encoding': 'GB2312'}
    

    2.大量信息解析(只解析一部分)

    import urllib
    from chardet.universaldetector import UniversalDetector
    usock = urllib.urlopen('http://www.baidu.com/')
    #创建一个检测对象
    detector = UniversalDetector()
    for line in usock.readlines():
     #分块进行测试,直到达到阈值
        detector.feed(line)
        if detector.done: break
    #关闭检测对象
    detector.close()
    usock.close()
    #输出检测结果
    print detector.result
    
    
    运行结果:
    {'confidence': 0.99, 'encoding': 'GB2312'}
    

    小结

    1.在处理字符编码类型未知的时候,我们可以通过chardet模块获得字符编码类型,然后对其进行重新编码

    2.当数据量过大时我们只需要解析一小部分,不必全部解析.

    相关文章

      网友评论

          本文标题:Python网站爬虫编写中字符编码的解决方案分享

          本文链接:https://www.haomeiwen.com/subject/qsmdlttx.html