【发布时间】:2016-10-05 04:53:43
【问题描述】:
我不希望 lxml 向纯文本添加任何内容。我故意离开他们。 lxml 添加纯文本 <p> 标签。这里value 可能是html 或纯文本。我需要 lxml 来处理 html 并留下纯文本。
import lxml.html
mixed = ['plaintext', '<a>HTML</a>', '<a>HTML</a>']
for text in mixed:
html = lxml.html.fromstring(text)
print(lxml.html.tostring(html))
输出:
b'<p>plaintext</p>'
b'<a>HTML</a>'
b'<a>HTML</a>'
我需要的是:
b'plaintext'
b'<a>HTML</a>'
b'<a>HTML</a>'
所以我想出了几个问题。
- 如何知道一个 sn-p 是纯的,没有任何 html 标签? (这样我就不必将它们传递给 lxml),或者
- 如何阻止 lxml 在纯文本中添加
<p>标签?
【问题讨论】:
-
你能添加一个例子,说明你有什么作为输入和你想要什么作为输出吗?
-
@PadraicCunningham,我现在举了一个简短的例子。
-
不确定是否可以使用 lxml,有多种方法可以检查您是否有 html,只需检查以
<开头的字符串或使用更复杂的正则表达式。 -
试试html.parser,crummy.com/software/BeautifulSoup/bs4/doc/…,用bs4替换lxml更好的选择。