考虑到HTML代码的灵活性,解析出用户通过浏览器看到的段落似乎是一项非常重要的任务。
目前,我有一个不太可靠的解决方案:
tree = lxml.etree.fromstring(html, lxml.etree.HTMLParser()) if isinstance(html, basestring) else html
for skiptag in ('//script', '//iframe', '//style',
'//link', '//meta', '//noscript', '//option'):
for node in tree.xpath(skiptag):
node.getparent().remove(node)
paragraphs = lxml.etree.tostring(tree, encoding=unicode, method='text')
我面临的问题主要是如何处理异常(或者说,自由风格)。
一个很常见的情况是,在HTML中,许多段落都是在一行(例如下面的代码)中编写的,我的代码将它们解析为一个段落。
^{pr2}$我的问题是:
<p>
不仅可以表示段落,而且还有许多其他方法可以应用于free样式?在
看看html2text。在
它可能不能完全满足您的需要,但它只是一个500行的脚本,所以它应该很容易适应您的特殊需要。在
使用xpath方法在所有段落上循环:
相关问题 更多 >
编程相关推荐