刚学Python爬虫,爬取网页时,不可避免会遇到\xa0字符串,你会发现,正则re.sub(r’\xa0’, ‘’)和字符串的replace都不管用。
\xa0 是不间断空白符  ,自己做前端页面的时候也会经常用到这个符号。
通常我们所用的空格的ASCII码是 \x20 ,在标准ASCII可见字符 0x20~0x7e 范围内。
而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。latin1 字符集可向下兼容 ASCII ( 0x20~0x7e )。
虽然爬取到的内容包含\xa0字符内容也不影响实际使用,可谁叫我有点强迫症呢,实在有点追求完美主义,自己就是过去不自己这道坎。于是在网上找了很多解决方案,感觉方法都还不够简练。
比如,有人建议用字符串的split()方法先进行分割,再用join()方法进行连接,是可以去掉\xa0字符,可是如果原本字符串里就有空格,想保留的空格也一并去掉了。所以这个方法不算严谨。
还有人建议用ord()+fromkeys()+translate()方法,功能是实现了,可看起来是不是太复杂了,这几个方法平时都太少用到了。
通过尝试我发现一个简单的replace(u’\xa0’, ‘’)方法就可以实现了,比如:
import re
s='\xa0/\xa0The Shawshank Re