Почему BeautifulSoup извлекает теги без ссылок? - PullRequest
0 голосов
/ 12 июня 2019
<div id="reply" class="reply attachment text">
    <p class="intro">
        <label for="delete">
            <span class="name">Name</span>
        </label>

        <span class="identification">0123456789</span>
    </p>
</div>

С помощью приведенного выше html я хочу получить идентификационный номер '0123456789'.

Чтобы получить идентификатор, который я пробовал:

ids = soup.findAll(lambda tag: tag.name == 'span' and tag.findParent('p', 'intro') and tag.findParent('p', 'intro').findParent('div', class_=re.compile("(.)*attachment(.)*$")))

и

ids = soup.findAll(lambda tag: tag.name == 'div' and tag.findChild('p', 'intro') and tag.findChild('p', 'intro').findChild('span', class_='poster_id'))

но каждый раз, когда я получаю (с помощью .get_Text ()):

#by John Smith
#0123456789

'recursive = False' не дает вывода

Что я делаю не так?

1 Ответ

2 голосов
/ 12 июня 2019
from bs4 import BeautifulSoup

html = '''
<div id="reply" class="reply attachment text">
<p class="intro">
    <label for="delete">
        <span class="name">Name</span>
    </label>

    <span class="identification">0123456789</span>
</p>
</div>
'''

soup = BeautifulSoup(html,'lxml')
content = soup.find_all('span', class_ = 'identification')
print(content[0].get_text())

#o/p
'0123456789'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...