python - Scrapy爬虫框架抓取中文结果为Unicode编码,如何转换UTF-8编码
迷茫
迷茫 2017-04-17 13:17:39
[Python讨论组]
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(9)
巴扎黑

我遇到过一样的问题,可以参考
http://git.oschina.net/ldshuang/imax-spider/commit/1d05d7bafdf7758f7b422cc1133abf493bf55086

ringa_lee

这个所说的list类型是个什么样子?list里面保存多行所抓取的字符串?那就直接for s in strs取出,encode()为utf-8再保存就行。
或者一个list就是一个抓取的字符串?可python的字符串本质也就是list啊。"".join()试试

巴扎黑

\u5173\u4e8e 这就是utf8
http://zh.wikipedia.org/wiki/UTF-8

ringa_lee

建议先去弄清楚unicode、UTF、UCS

大家讲道理
for line in list:
    line = unicode(line,"UTF-8")
    #do something.. 

这样应该可以把。

迷茫

我最近用结巴分词也遇到过类似问题,然后上网查最后这样解决的(不过我是中文写入文件的数据库会不会不一样就不知道了):
1.如 @tengyun 所言,对于要输出的元素 a.encode('utf-8')
2.并且在程序的开头加encoding & 重载sys。。。

#encoding=utf-8
import sys
reload(sys)
sys.setdaulftencoding('utf-8')
天蓬老师

题主还是先搞明白unicode和utf-8是什么关系吧。

黄舟

List类型你也是要一个一个item地插入数据库,只要对每个item都进行转码操作即可,例如
for ii in itemlist: str = ii.encode('utf-8')
更多scrapy相关的内容,可以看看这个博客,http://tech.my-coffees.com

伊谢尔伦

为了大家不再百度找答案。这里放上答案:
str=json.dumps(dict(item),ensure_ascii=False)+"\n";
str=unicode.encode(str,'utf-8');

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号