Вытащить значение тега с помощью BeautifulSoup

может ли кто-нибудь направить меня, как вытащить значение тега с помощью BeautifulSoup? Я прочитал документацию, но мне было трудно ориентироваться в ней. Например, если бы у меня было:

<span title="Funstuff" class="thisClass">Fun Text</span>

Как бы я просто вытащил" Funstuff " busing BeautifulSoup / Python?

Edit: я использую версию 3.2.1

2 ответов


вам нужно что-то, чтобы идентифицировать элемент, который вы ищете, и трудно сказать, что это в этом вопросе.

например, оба они будут печатать "Funstuff" в BeautifulSoup 3. Один ищет элемент span и получает заголовок, другой ищет промежутки с данным классом. Есть много других способов добраться до этой точки.

import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup('<html><body><span title="Funstuff" class="thisClass">Fun Text</span></body></html>')
print soup.html.body.span['title']
print soup.find('span', {"class": "thisClass"})['title']

дети тегов доступны через .содержание http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children В вашем случае вы можете найти тег, используя его класс CSS для извлечения содержимого

from bs4 import BeautifulSoup
soup=BeautifulSoup('<span title="Funstuff" class="thisClass">Fun Text</span>')
soup.select('.thisClass')[0].contents[0]

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors имеет все детали nevessary