从Scrapy屏幕输出中移除回车符

0 投票
2 回答
898 浏览
提问于 2025-04-18 12:12

我在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,} 

试试这个,告诉我效果怎么样。

撰写回答