python中的字符串编码

本文介绍了如何使用Python的chardet库检测字符串的编码类型,并通过实例展示了编码转换的方法。此外,还详细说明了一个复杂应用中如何在搜索引擎abelkhan爬虫中灵活运用这些技术。

获取字符串的编码类型:

encodingdate = chardet.detect(str)

chardet用于实现字符串的编码类型检测

chardet的下载地址:https://pypi.python.org/pypi/chardet/

查看获取到的编码类型:

print encodingdate['encoding']

将字符串转为unicode:

ustr = unicode(str, encodingdate['encoding'])

将unicode转为字符串:

ustr.encode('utf-8', 'ignore')

 需要注意的是encode方法,str类型也有这个接口,

但是这个接口的作用是将unicode编码成指定编码的字符串,在str上是无效的。

 

一个相对复杂的应用:

字符串转unicode在搜索引擎abelkhan 爬虫部分的应用

            for name,value in attrs:
                if name == 'content':
                    try:
                        if isinstance(value, str):
                            encodingdate = chardet.detect(value)
                            if encodingdate['encoding']:
                                value = unicode(value, encodingdate['encoding'])

                        if self.style == 'keywords':
                            keywords = doclex.simplesplit(value)
                            if isinstance(keywords, list):
                                for key in keywords:
                                    self.urlinfo['keys']['1'].append(key)

                        elif self.style == 'profile':
                            self.urlinfo['profile'].append(value)

                            keys1 = doclex.lex(value)
                            for key in keys1:
                                self.urlinfo['keys']['2'].append(key)

                            keys1 = doclex.vaguesplit(value)
                            for key in keys1:
                                self.urlinfo['keys']['3'].append(key)

                            tlen = 16
                            if len(value) < 16:
                                tlen = len(value)
                            self.urlinfo['title'].append(value[0:tlen])

                    except:
                        import traceback
                        traceback.print_exc()

 

 

开源的搜索引擎,欢迎大家支持!

项目地址:http://www.abelkhan.com/

向我们提出意见:http://www.abelkhan.com/guestbook/

对项目进行捐助:http://www.abelkhan.com/collection/

代码托管地址如下:https://github.com/qianqians/websearch欢迎大家参与

转载于:https://www.cnblogs.com/qianqians/p/5321301.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值