
1 KyL Mar 8, 2015 虽然症状不像,但是希望你能从 http://v2ex.com/t/163786 得到有用的信息 |
2 Battle Mar 8, 2015 我当初也遇过这个编码问题,我也不懂原因在哪里,不过问题解决了,因为看了一篇博客,然后照着博主的方法敲了一遍,希望对你有帮助,也希望有知道原因的人告诉我一下,附上博客链接: http://blog.csdn.net/u012150179/article/details/32911511 |
3 binux Mar 8, 2015 上代码,我觉得不是你说的那个问题。 |
4 JoeShu Mar 8, 2015 mysql默认编码不是utf8,是Latin1。 |
5 ljcarsenal OP @binux @JoeShu 我是用django模型建立的数据表结构(因为后续还要有把数据全部存入excel里的奇葩需求,这里基本上用的都是字符串,包括日期),看了下 默认生成的的确为Latin1编码 <script src="https://gist.github.com/lijunchengbeyond/ab410191ffa5e2164c31.js"></script> 运行爬虫 用下面这句替代 cOntent= unicode(p.text_content().strip('\n')).encode('latin1'), 请求的是 http://www.imdb.com/title/tt239753/reviews?start=0 得到的错误信息为 Warning: Incorrect string value: '\x97every...' for column 'content' at row 1,搜这个网页上的every,结果 有7个,应该第三个人评论的那篇文章,前面有个特殊的破折号 every。 在数据库里无法保存。 爬取其他页面类似,会有类似 é 等这种符号无法保存。 问题是有没有办法解决,使其能保存在数据库里? |
6 mindcat Mar 9, 2015 这里有一只猫猫,猫猫什么都不知道 /w\ 猫猫建议你试试`r.encoding = "utf-8"`喵~ |
7 binux Mar 9, 2015 `cOntent= p.text_content().decode("Windows-1252")` 在内存中,只使用 unicode 。只在数据边界上进行遍解码。 没有看到『存到mysql数据库里面』啊 |
8 ljcarsenal OP @binux 那个gist文件的 65-77行,用的 Django 的orm ,存在时更新,不存在时创建 |
9 yepinf May 14, 2015 iso-8859-1这个编码,使用urllib2来获取网页,可以正确解码 昨晚刚解决,不知道为什么:D |