【问题标题】:parse nested html lists using lxml in python在 python 中使用 lxml 解析嵌套的 html 列表
【发布时间】:2012-10-28 03:42:54
【问题描述】:

我正在尝试解析如下所示的 html 列表的元素:

<ol>
    <li>r1</li>
    <li>r2
        <ul>
            <li>n1</li>
            <li>n2</li>
        </ul>
    </li>
    <li>r3
        <ul>
            <li>d1
                <ol>
                    <li>e1</li>
                    <li>e2</li>
                </ol>
            </li>
            <li>d2</li>
        </ul>
    </li>
    <li>r4</li>
</ol>

我大部分都可以解析这个,但对我来说最大的问题是获取 dom 文本。不幸的是,lxml 的 node.text_content() 返回它下面的完整树的文本形式。我可以使用 lxml 获取该元素的文本内容,还是需要为此使用字符串操作或正则表达式?

例如:具有 d1 的节点返回“d1e1e2”,而我希望它只返回 d1。

【问题讨论】:

    标签: python string lxml


    【解决方案1】:

    每个节点都有一个名为text 的属性。这就是你要找的东西。

    例如:

    for node in root.iter("*"):
        print node.text
        # print node.tail # e.g.: <div> <span> abc </span> def </div> => abc def
    

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 2013-01-01
      • 2013-12-23
      • 2013-01-17
      • 1970-01-01
      • 2013-07-24
      • 2012-04-12
      • 2012-07-29
      • 2019-11-28
      相关资源
      最近更新 更多