Как получить внутренний HTML всех первых дочерних элементов в виде списка или фрейма данных - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы получить innerHTML всех первых дочерних элементов указанного тега c, в котором имя класса "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>

Я хочу получить результат, как показано ниже:

результат [0] = "<div><p>a</p></div>"

результат [1 ] = "<div><p>b</p></div>"

результат [2] = "<div><p>c</p></div>"

результат [3] = "<p>d</p>"

результат [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> "

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Относится к тому, чего вы хотите достичь, вы хотите получить outerHTML, а не innerHTML.

Используйте //* для запроса всех узлов и parent для удовлетворения ваших потребностей, например:

elements = driver.find_elements_by_xpath("//*[parent::*[@class='list-group']]")
for element in elements:
    print(element.get_attribute('outerHTML'))
0 голосов
/ 23 апреля 2020

Вы можете просто использовать следующую строку.

items = driver.find_elements_by_xpath("//div[@class='list-group']/*")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...