2012-04-27 3 views
1

Привет! Немного поиграв, я придумал следующую функцию, которая возвращает полный HTML-тег, а не просто часть в инвертированном < > "это" <>(python) Разбор определенных выходных тегов HTML с использованием красивого супа

from BeautifulSoup import BeautifulSoup 
from urllib2 import urlopen 

def get_wotd(): 
    return str((BeautifulSoup(urlopen('http://www.reference.com/wordoftheday'))).findAll('h2')) 

print get_wotd() 

сегодня слово, например, является "перекус". Вместо того, чтобы:

[<h2 class="me">nosh</h2>] 

Мне нужен выход, чтобы быть, просто,

nosh 

Кто есть какие-либо идеи, как я мог бы осуществить это?

ответ

1

Используйте .text атрибут для извлечения внутрипартийную текста, а также использовать find() метод вместо:

>>> from BeautifulSoup import BeautifulSoup 
>>> from urllib2 import urlopen 
>>> soup = BeautifulSoup(urlopen('http://www.reference.com/wordoftheday')) 
>>> soup.find('h2').text 
u'nosh' 
1

lxml Использование вместо BeautifulSoup:

>>> from lxml.html import parse 
>>> tree = parse("http://www.reference.com/wordoftheday") 
>>> tree.xpath("//h2")[0].text 
'nosh' 
+0

Причина использования LXML проста: у меня нет Кажется, что BeautifulSoup установлен на моем Mac. – Kimvais

Смежные вопросы