Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Извлечение HTML из Beautiful Soup

Автор вопроса: RenoОтветов: 1

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

В настоящее время мой код выводит это в 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':''})
  • Пожалуйста, покажите нам, что вы пробовали до сих пор. pypat 24.05.2013

pythonbeautifulsoup

Ответы

Ответ 1 · рейтинг 2 · Robert Lujo

Это нормальное решение для вас:

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%']

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы