我有一系列问题,其中我没有答案。
1)剥离字符串列表
input:
'item1, item2, \t\t\t item3, \n\n\n \t, item4, , , item5, '
output:
['item1', 'item2', 'item3', 'item4', 'item5']
比执行以下操作更有效吗?
[x.strip() for x in l.split(',') if x.strip()]
2)清理/清理HTML
保留基本标签,例如强,p,br,......
删除恶意javascript,css和div
3) Unicode处理......
您建议如何处理在文档中解析的unicode? p>
有什么想法吗? :)谢谢你们!
答案 0 :(得分:2)
对于第一个,你可以使用split而不是列表理解来修剪额外的空格:
result = [x.strip() for x in i.split(',')]
并从列表中删除空字符串:
result = [x for x in result if x]
答案 1 :(得分:2)
要清除HTML,请使用lxml.html
import lxml.html
text = lxml.html.fromstring("...")
text.text_content()
答案 2 :(得分:1)
我在python web开发方面有点初学者,但是为了清理/清理html,我发现markdown2库有一些非常好的功能。您可以将它与MarkItUp!基于jQuery的编辑器一起使用。它们可能无法解决您的所有问题,但可能会帮助您在短时间内完成大量工作。
答案 3 :(得分:1)
1)您可以使用条带方法
2)您可以使用清理,http://wonko.com/post/sanitize
3)这里有一些unicode提示:http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/
答案 4 :(得分:1)
1)[j.strip() for j in a.split(',') if j.strip()]
2)检查tidy
答案 5 :(得分:1)
我倾向于编写多个级联生成器,特别是如果我想将某些输出作为测试的一部分:
stripped_iter = (x.strip() for x in l.split(','))
non_empty_iter = (x for x in stripped_iter if x)
灵感来自Beazley的presentation on coroutines。