最近從網頁爬取一個文本,看起來像是這樣(包含了換行和空格):html
Bitcoin 比特幣
當我用python的字符串replace方法替換空格和\n後,再print,發現了這樣的狀況:python
比特幣
wtf?我僅僅是這麼作了而已:windows
content = content.replace(' ', '') content = content.replace('\n', '') print content
而後Bitcoin字段就消失了?我並無替換Bitcoin啊數組
到底出了什麼問題呢?編碼
答案超乎個人意料——操作系統
咱們加一個方括號,把它變成數組,這樣就能查看編碼了,因而:code
content = tag.h1.get_text() print [content], "--------------\n", content content = content.replace(' ', '') print [content], "--------------\n", content content = content.replace('\n', '') print [content], "--------------\n", content
它的打印結果是:htm
[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比特幣