【问题标题】:Python: Using lxml to locate text outside a spanPython:使用 lxml 定位跨度之外的文本
【发布时间】:2012-07-24 03:03:06
【问题描述】:

我必须解析一些 HTML。但是,它的格式不正确。您可以看到文本“Cowabunga”不包含在任何 HTML 元素中。

from lxml.html import fromstring
from lxml.cssselect import CSSSelector

stuff = '''<p>
                <span id="alpha" style="color: #999; "></span> 
                <span id="bravo" style="color: #999; "></span> 
                Cowabunga  
            </p>'''

l = CSSSelector ("p")

e = l(fromstring(stuff))
print e[0].text

如何使用 lxml/Python 编写 CSSSelector 来定位此文本?

谢谢

编辑:上面的代码给出了空白输出——只有一行空格——我需要捕捉“Cowabunga”

【问题讨论】:

  • HTML 没有格式错误 - “Cowabunga”在 p 元素中,紧跟在 spans 之后,但不在其中。
  • 是的,格式错误可能不是这里的规范术语 - Steven 的“混合内容”似乎是一个更好的术语

标签: python css-selectors lxml


【解决方案1】:

这是混合内容,所以总是有点粗糙。 e[0].text_content() 将获取您示例中的所有文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多