2013-08-26 1 views
1

HTML кода:Как извлечь значения с BeautifulSoup без какого-либо класса

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

Я хотел значения «Женский» в качестве выходного сигнала.

Я пробовал bs.findAll('div',{'class':'clearfix'}); bs.findAll('tag',{'class':'_480u'}) Но эти классы находятся по всему моему html-коду, а выход - большой список. Я хотел включить {td -> class = ".." и div -> class = ".."} в свой поиск, чтобы получить выход как Female. Как я могу это сделать?

Благодаря

ответ

3

Использование 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 

или указать класс, как пустая строка (или None) и использовать string свойство:

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

Thankyou для быстрого ответа. :) – user1946217

+0

@ user1946217 Не забудьте отметить его ответ как правильный, если это было полезно! – g19fanatic