如何以列表或数据框架的形式获取所有第一个子元素的innerHTML。

问题描述 投票:0回答:1

我想得到 innerHTML 的所有第一个子元素的类名为 "list-group "的特定标签,使用selenium或 beautifulsoup 在python中。

HTML代码。

<div id="history_1" class="list-group">
        <div>
                <p>a</p>
        </div>
        <div>
                <p>b</p>
        </div>
        <div>
                <p>c</p>
        </div>
        <p>
                d
        </p>
</div>
<div>
....
</div>
<div id="history_2" class="list-group">
        <div>
                <p>e</p>
        </div>
        <div>
                <p>f</p>
        </div>
        <div>
                <p>g</p>
        </div>
        <p>
                h
        </p>
</div>

我想得到如下的结果

result[0] = "<div><p>a</p></div>"

result[1] = "<div><p>b</p></div>"

result[2] = "<div><p>c</p></div>"

result[3] = "<p>d</p>"

result[4] = "<div><p>e</p></div>"

result[5] = "<div><p>f</p></div>"

result[6] = "<div><p>g</p></div>"

result[7] = "<p>h</p>"

希望得到任何帮助。

python selenium beautifulsoup
1个回答
1
投票

指的是你想达到的目的,你想得到的是: outerHTML,不 innerHTML.

使用 //* 查询所有节点和 parent 来满足你的需求,像这样。

elements = driver.find_elements_by_xpath("//*[parent::*[@class='list-group']]")
for element in elements:
    print(element.get_attribute('outerHTML'))

1
投票

你可以简单地使用下面的行。

items = driver.find_elements_by_xpath("//div[@class='list-group']/*")
© www.soinside.com 2019 - 2024. All rights reserved.