Я пересматриваю веб-сайт, и у меня возникают проблемы с получением текста для промежутка. Я видел, что вы можете использовать ниже, чтобы получить текст:

    <span title="9 gold badges"><span class="badge1"></span><span class="badgecount">9</span></span>
    badges = soup.body.find('div', attrs={'class': 'badges'})
    for span in badges.span.find_all('span', recursive=False):
        print span.attrs['title']

Тем не менее, диапазон, который я заинтересован в получении текста, не имеет атрибутов. Как я могу получить текст?

     <span>Geolocation: 35.1391, -90.0536</span>
0
Caitlin Hamilton 19 Сен 2018 в 00:42

2 ответа

Лучший ответ

Tag.text или tag.get_text ()

for span in badges.span.find_all('span', recursive=False):
    print span.text

Вывод примера:

>>> span = soup.find('span')
>>> span
<span>Geolocation: 35.1391, -90.0536</span>
>>> span.text
'Geolocation: 35.1391, -90.0536'
>>> span.get_text()
'Geolocation: 35.1391, -90.0536'
0
zzzachzzz 18 Сен 2018 в 22:32

Чтобы получить все теги span без атрибута, попробуйте этот фрагмент:

for span in badges.span.find_all('span', recursive=False):
    if not span.attrs.values():
        print (span.text)

Надеюсь, что это работает для вас.

0
Sushant Kathuria 19 Сен 2018 в 07:40