【发布时间】:2013-06-27 04:55:00
【问题描述】:
我正在使用 lxml 解析一些 HTML 片段(来自 RSS 提要),为了有效地执行此操作,我使用了create_parent='div'。当我稍后输出 HTML 时,我不希望包含父 div,因为在我的 html 布局中,它最终成为 div 中的 div,完全没有必要。
现在的代码:
from lxml.html import fragment_fromstring
html = fragment_fromstring(html_string, create_parent = 'div')
for tag in html.xpath('//*[@class]'):
tag.attrib.pop('class')
for tag in html.xpath('//*[@id]'):
tag.attrib.pop('id')
return lxml.html.tostring(html)
TL;DR:如何在输出时删除包装 div?
【问题讨论】:
-
这可能是答案;通过跨过它并将孩子传递进来“删除包装 div”:
lxml.etree.tostring( html_doc.xpath('*')[0] )。警告:未经测试的代码。仅使用 python lxml 15 年。对代码更改进行测试的人应该写下答案。
标签: python html-parsing lxml lxml.html