2013-05-24 3 views
0

Я борюсь с получением данных, которые я хочу, и я уверен, что это очень просто, если вы знаете, как использовать BS. Я пробовал получить это право в течение нескольких часов без пользы после прочтения документов.Beautiful Soup HTML Extraction

В настоящее время мой код выводит это в Python:

[<td>0.32%</td>, <td><span class="neg color ">&gt;-0.01</span></td>, <td>0.29%</td>, <td>0.38%</td>, <td><span class="neu">0.00</span></td>] 

Как бы я просто изолировать содержимое тегов TD, которые не содержат теги?

Т.е. я хотел бы видеть только 0,32%, 0,29%, 0,38%.

спасибо.

import urllib2 
from bs4 import BeautifulSoup 

fturl = 'http://markets.ft.com/research/Markets/Bonds' 
ftcontent = urllib2.urlopen(fturl).read() 
soup = BeautifulSoup(ftcontent) 

ftdata = soup.find(name="div", attrs={'class':'wsodModuleContent'}).find_all(name="td",  attrs={'class':''}) 
+0

плз показывают нам, что вы пробовали до сих пор. – pypat

ответ

2

Является ли это хорошо для вас решение:

html_txt = """<td>0.32%</td>, <td><span class="neg color"> 
    &gt;-0.01</span></td>, <td>0.29%</td>, <td>0.38%</td>, 
    <td><span class="neu">0.00</span></td> 
    """ 
from bs4 import BeautifulSoup 
soup = BeautifulSoup(html_txt) 
print [tag.text for tag in soup.find_all('td') if tag.text.strip().endswith("%")] 

выход:

[u'0.32%', u'0.29%', u'0.38%'] 
+0

работает для меня, спасибо. – Reno