Найти текст без тега в ContentPane с BeautifulSoup - PullRequest
0 голосов
/ 12 сентября 2018

Мой вопрос похож на эти: Получить HTML-текст без тега , Beautiful Soup - печатает текст контейнера без печати текста дочерних элементов

Как я могу получить этот текст из ContentPane: Updated September 11, 2018 (57) Cases + (1) traffic w/contributing heroin?

HTML:

<!--Container Content-->
<div class="contentmain">
    <div id="dnn_ctr3799_ContentPane" class="contentpane">
        <!--Start_Module_3799-->
        Updated September 11, 2018 (57) Cases + (1) traffic w/contributing heroin

Попытка 1 soup.find:

Я могу напечатать весь ContentPane, включая приведенный выше текст, используя soup.find, но я не хочу всего этого:

name_box = soup.find(id= 'dnn_ctr3799_ContentPane')
name = name_box.text.strip()
print name

Попытка 2 nextSibling:

Я пытался nextSibling, но не получил результата.

texts = soup.findAll("div", {"id":"dnn_ctr3799_ContentPane"})
for text in texts:
    if text.string:
        if "dnn_ctr3799_ContentPane" in text.string:
            print text.nextSibling.string.strip()

Ссылка на веб-страницу: 2018 Смертность от передозировки героина / фентанила

1 Ответ

0 голосов
/ 12 сентября 2018

Оказывается, это Контейнер Я имею дело с. И строка, которую я хочу, является sibling строки <!--Start_Module_3799--> под родителем <div id="dnn_ctr3799_ContentPane" class="contentpane">

Ответ:

texts = soup.find('div', id='dnn_ctr3799_ContentPane')
name = texts.find_next(string=True)
print od.nextSibling.string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...