如何将所有第一个子元素的innerHTML作为列表或数据帧



我想通过在python中使用selenium或beautifulsoup来获取类名为"list group"的特定标记的所有第一个子元素的innerHTML

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>">

感谢您的帮助。

指您想要实现的目标,您想要的是outerHTML,而不是innerHTML

使用//*查询所有节点,使用parent满足您的需求,如下所示:

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

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

items = driver.find_elements_by_xpath("//div[@class='list-group']/*")

最新更新