我有以下html代码:
...
<p class="footer">[[footer]] - <a href="/rss">feed</a> if you want.</p>
...
我正在尝试从包含空格的代码中提取“[[footer]]-feed.”(查找包含文本“[[footer]]”的页面上的所有字符串的常规任务)。你知道吗
import lxml.etree as ET
html = """
<p class="footer">[[footer]] - <a href="/rss">feed</a> if you want.</p>
"""
elem = ET.fromstring(html)
infos = elem.xpath('/p')
for info in infos:
print 1, info.text
print 2, ET.tostring(elem) #
结果:
1, [[footer]] -
2, <p class="footer">[[footer]] - <a href="/rss">feed</a> if you want.</p>
期望结果
[[footer]] - <a href="/rss">feed</a> if you want.
问题
我不得不问这个问题,这是很谦卑的,因为它似乎不应该是困难的。你知道吗
如何使用lxml提取包含文本“[[footer]]的页面上的所有字符串?你知道吗
您无法获得确切的字符串,因为lxml将HTML转换为它自己的内部数据结构,然后您需要使用tostring()方法将其转换回字符串(这意味着属性、嵌套等可能会以稍微不同的顺序/格式出现,并且不会保留空白)。例如:
因为听起来你提到了这可能在页面上的任何地方,所以你可能想把这个check info作为一个函数,并在遍历所有元素时递归调用它。你知道吗
根据您的评论进行编辑:
你可以这样做:
相关问题 更多 >
编程相关推荐