如何使用BeautifulSoup提取值而不使用类

时间:2013-08-26 12:06:39

标签: python parsing python-2.7 html-parsing beautifulsoup

html代码:

<td class="_480u">
    <div class="clearfix">
        <div>
            Female
        </div>
    </div>
</td>

我希望将值“女性”作为输出。

我试过bs.findAll('div',{'class':'clearfix'}); bs.findAll('tag',{'class':'_480u'}) 但这些类都是我的html代码,输出是一个很大的列表。我想加入{td - &gt; class =“..”和div - &gt; class =“..”}在我的搜索中,所以我得到输出为女性。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:4)

使用stripped_strings属性:

>>> from bs4 import BeautifulSoup
>>>
>>> html = '''<td class="_480u">
...     <div class="clearfix">
...         <div>
...             Female
...         </div>
...     </div>
... </td>'''
>>> soup = BeautifulSoup(html)
>>> print ' '.join(soup.find('div', {'class': 'clearfix'}).stripped_strings)
Female
>>> print ' '.join(soup.find('td', {'class': '_480u'}).stripped_strings)
Female

或将class指定为空字符串(或None)并使用string属性:

>>> soup.find('div', {'class': ''}).string
u'\n            Female\n        '
>>> soup.find('div', {'class': ''}).string.strip()
u'Female'