字符串/HTML 的清理和剥离 - Python
我有一系列问题,但我没有答案。
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
保留基本标签,例如 Strong、p、br , ...
删除恶意 javascript、css 和 div
3) Unicode 处理...
对于处理文档中解析的 unicode,您有何建议?
有什么想法吗? :) 谢谢大家!
I have a set of questions, of which I do not have an answer to.
1) Stripping lists of string
input:
'item1, item2, \t\t\t item3, \n\n\n \t, item4, , , item5, '
output:
['item1', 'item2', 'item3', 'item4', 'item5']
Anything more efficient than doing the following?
[x.strip() for x in l.split(',') if x.strip()]
2) Cleaning/Sanitizing HTML
keeping basic tags e.g. strong, p, br, ...
removing malicious javascript, css and divs
3) Unicode handling...
what would you recommend for dealing with unicode parsed within documents?
Any ideas? :) Thanks guys!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
要清理 HTML,请使用 lxml.html
To clean HTML use lxml.html
对于第一个,您可以使用 split 然后列表理解来修剪多余的空格:
并从列表中删除空字符串:
For the first one you can use split then a list comprehension to trim the extra whitespace:
And to remove the empty strings from the list:
我倾向于编写多个级联生成器,特别是如果我希望某些输出成为测试的一部分:
灵感来自 Beazley 的 关于协程的演示。
I tend to write multiple cascading generators, particularly if I want to some output to be part of a test:
The inspiration is Beazley's presentation on coroutines.
我是 python Web 开发的初学者,但对于清理/清理 html,我发现 markdown2 库有一些非常好的功能。您可以将其与 MarkItUp! 基于 jQuery 的编辑器一起使用。它们可能无法解决您的所有问题,但可能会帮助您在短时间内完成大量工作。
I am somewhat of a beginner at python web development, but for cleaning/sanitizing html I have found that the markdown2 library has some very nice features. You can use it with the MarkItUp! jQuery-based editor. They may not solve all your problems but might help you do a lot of work in a short time.
1) 您可以使用 strip 方法
2) 您可以使用 sanitize , http://wonko.com/post/sanitize< /a>
3) 这里有一些 unicode 提示: http: //blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/
1) you can use the strip method
2) you can use sanitize , http://wonko.com/post/sanitize
3) some unicode tips here: http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/
1)
[j.strip() for j in a.split(',') if j.strip()]
2) 检查 整洁
1)
[j.strip() for j in a.split(',') if j.strip()]
2) check tidy