作者在处理爬虫爬取的数据时,发现有部分\xa0未用正则表达式处理干净,在CSDN中找了大量博文都未能实现,最后发现只需要在使用replace()方法时将\xa0改为\\xa0即可
注:
\xa0是不间断空白符
我们通常所用的空格是\x20,是在标准ASCII可见字符0x20~0x7e范围内。
而\xa0属于latin1(ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1字符集向下兼容ASCII(0x20~0x7e)。通常我们见到的字符多数是latin1的,比如在MySQL数据库中。
content = '\xa0\xa0\xa0\xa0\xa0\xa0指导意见:'
json_str = content.replace('\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0','')
print(json_str)
输出为
指导意见:
关于ord函数:
ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。
关于fromkeys方法:
dict中的fromkeys方法目的是创建一个只有key的字典,内部利用for循环,使三个字符的asii码值成为可迭代对象(本来的整数是不可迭代的),分别对其迭代,存入字典。
关于translate方法:
Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。接收到move返回的表(字典),之后对字符串进行替换。