最近从网页爬取一个文本,看起来像是这样(包含了换行和空格):
Bitcoin
比特币
当我用python的字符串replace方法替换空格和\n后,再print,发现了这样的情况:
比特币
wtf?我仅仅是这么做了而已:
content = content.replace(' ', '')
content = content.replace('\n', '')
print content
然后Bitcoin字段就消失了?我并没有替换Bitcoin啊
到底出了什么问题呢?
答案超乎我的意料——
我们加一个方括号,把它变成数组,这样就能查看编码了,于是:
content = tag.h1.get_text()
print [content], "--------------\n", content
content = content.replace(' ', '')
print [content], "--------------\n", content
content = content.replace('\n', '')
print [content], "--------------\n", content
它的打印结果是:
[u'\n\r\nBitcoin\r\n \r\n\u6bd4\u7279\u5e01 '] --------------
Bitcoin
比特币
[u'\n\r\nBitcoin\r\n\r\n\u6bd4\u7279\u5e01'] --------------
Bitcoin
比特币
[u'\rBitcoin\r\r\u6bd4\u7279\u5e01'] --------------
比特币
居然含有\r(极有可能是windows操作系统特有的问题)我们如何还原呢?当然是把\r也替换掉
content = content.replace('\r', '')
print [content], "--------------\n", content
# 打印结果
[u'Bitcoin\u6bd4\u7279\u5e01'] --------------
Bitcoin比特币