Python下chardet的安装

环境1:

winXP 32bit python2.7.6

说,安装chardet前要先安装setuptools,试过各种安装都不奏效,一直出现UnicodeDecodeError:'ascii'codec can't decode byte 0xd4 inposition 9: ordinal not inrange(128)

这样的错误提示,终于在这个网页找到答案:http://www.aax9.com/2014/01/21/95.html

最简单的方法就是进入http://www.pip-installer.org/en/latest/installing.html

下载get-pip.py,运行

python get-pip.py

如果你没有安装过setuptools,将会自动帮您下载安装。如果已经安装过setuptools,运行更新。

pip install -u setuptools

安装完setuptools后,到https://pypi.python.org/pypi/chardet

下载 chardet-2.2.1.tar.gz (md5)

键入chardet的解压路径X:\Python27\chardet-2.2.1\chardet-2.2.1,简单一句python setup.py install,很快chardet就自动安装好啦


--------------------我是华丽的分割线-------------------/


环境2:

win7 64bit python3.4

高版本的python已经安装好setuptools了,这个不用再麻烦了,同样键入chardet的解压路径X:\Python34\chardet-2.2.1\chardet-2.2.1,使用运行命令setup.py就进入自动安装了(果然命令更简便)


--------------------我是华丽的分割线-------------------/


安装完chardet后,进行一个简单的测试,检验下chardet是不是能用了

环境1:winXP 32bit python2.7.6

代码参考:http://wiki.woodpecker.org.cn/moin/%20ObpLovelyPython/LpyAttAnswerCdays

#coding:utf-8

import sys
import urllib2
import chardet

def blog_detect(blogurl):
    try:
        fp = urllib2.urlopen(blogurl)                #尝试打开给定url
    except Exception, e:                             #若产生异常,则给出相关提示并返回
        print e
        print 'download exception %s' % blogurl
        return 0
    blog = fp.read()                                 #读取内容
    codedetect = chardet.detect(blog)["encoding"]    #检测得到编码方式
    print '%s\t<-\t%s' % (blogurl, codedetect)
    fp.close()                                       #关闭
    return 1
    
if __name__ == "__main__":
    if len(sys.argv) == 1:
        print 'usage:\n\t python test.py http://www.csdn.net'
    else:
        blog_detect(sys.argv[1])

运行

python test.py http://www.csdn.net
就能看到csdn网页是用什么编码的啦

ps:使用urllib代替urllib2可以实现相同的功能

import urllib
fp = urllib.urlopen(blogurl)       #尝试打开给定url

--------------------我是华丽的分割线-------------------/

环境2:win7 64bit python3.4

#test chardet2
print ("hello world")
import chardet
import urllib.request
f = urllib.request.urlopen('http://www.csdn.net')
print (chardet.detect(f.read()))

这个是很简单的测试。。。

区别就是,python3.4不能直接使用urllib,要使用urllib.request



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值