从Scrapy屏幕输出中移除回车符
我在64位的Windows Vista上使用Python.org的2.7版本来运行scrapy。我用以下代码来去掉屏幕输出中的\n和\r字符以及HTML标签:
body = response.xpath("//p").extract()
body2 = str(body)
body3 = re.sub(r'\s{2,}', ' ', body2)
print remove_tags(body3)
这段代码能很好地去掉HTML中的特殊字符,但最后的输出中还是有\r和\n字符。请问我是不是做错了什么?
谢谢
2 个回答
1
是的,因为你不确定文档里用的是什么样的换行符,所以你应该把你的模式替换成:
\s{2,}|[\r\n]
其实,大多数情况下,换行符可以是CRLF (这是Windows的标准),或者只有LF (这是Unix的标准)(这可能就是你当前文档的情况),或者只有CR (这是旧版苹果操作系统的标准)
1
伙计,你需要的是正则表达式。
(\\[rn]|\s){2,}
试试这个,告诉我效果怎么样。