字符串/HTML 的清理和剥离 - Python

发布于 2024-09-30 08:55:37 字数 544 浏览 8 评论 0原文

我有一系列问题,但我没有答案。

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

暗喜 2024-10-07 08:55:37

要清理 HTML,请使用 lxml.html

import lxml.html
text = lxml.html.fromstring("...")
text.text_content()

To clean HTML use lxml.html

import lxml.html
text = lxml.html.fromstring("...")
text.text_content()
风流物 2024-10-07 08:55:37

对于第一个,您可以使用 split 然后列表理解来修剪多余的空格:

result = [x.strip() for x in i.split(',')]

并从列表中删除空字符串:

result = [x for x in result if x]

For the first one you can use split then a list comprehension to trim the extra whitespace:

result = [x.strip() for x in i.split(',')]

And to remove the empty strings from the list:

result = [x for x in result if x]
梦巷 2024-10-07 08:55:37

我倾向于编写多个级联生成器,特别是如果我希望某些输出成为测试的一部分:

stripped_iter = (x.strip() for x in l.split(','))
non_empty_iter = (x for x in stripped_iter if x)

灵感来自 Beazley 的 关于协程的演示

I tend to write multiple cascading generators, particularly if I want to some output to be part of a test:

stripped_iter = (x.strip() for x in l.split(','))
non_empty_iter = (x for x in stripped_iter if x)

The inspiration is Beazley's presentation on coroutines.

茶底世界 2024-10-07 08:55:37

我是 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.

梦里泪两行 2024-10-07 08:55:37

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/

泛滥成性 2024-10-07 08:55:37

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文