首页 > 解决方案 > 使用 Beautiful Soup Python 获取没有属性的 span 文本

问题描述

我正在报废一个网站,但在获取文本时遇到了麻烦。我已经看到您可以使用以下内容来获取文本:

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

标签: pythonhtmlbeautifulsoup

解决方案


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'

推荐阅读