2012-07-23 17 views
6

Czy ktoś może mi polecić jak wyciągnąć wartość tagu za pomocą BeautifulSoup? Czytałem dokumentację, ale miałem trudności z poruszaniem się po niej. Na przykład, gdybym miał:Wyciągnij wartość tagu za pomocą BeautifulSoup

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

Jak bym po prostu wyciągnąć "Funstuff" busing BeautifulSoup/Python?

Edycja: używam wersji 3.2.1

+0

Czy to jest BeautifulSoup 3 lub BeautifulSoup 4? –

+0

Jego 3.2.1 ..10char – user1463925

Odpowiedz

6

Trzeba mieć coś do identyfikacji elementu, którego szukasz, i trudno powiedzieć, co jest w tej kwestii.

Na przykład, oba te elementy wydrukują "Funstuff" w BeautifulSoup 3. Jeden szuka elementu span i otrzymuje tytuł, a drugi szuka rozpiętości z daną klasą. Możliwe są inne ważne sposoby dotarcia do tego punktu.

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'] 
+0

Pytanie: moje oświadczenie import do BeautifulSoup jest: z BeautifulSoup importowej BeautifulSoup, CDATA Jednakże powyższy kod tylko wydaje się działać, gdy: import BeautifulSoup Każdy pomysł dlaczego? – user1463925

+0

To tylko Python. Jeśli robisz względny import ('from BeautifulSoup import BeautifulSoup'), zmień wiersz z' soup = BeautifulSoup.BeautifulSoup (... 'na' soup = BeautifulSoup (... ' Zobacz http: // docs. python.org/tutorial/modules.html po więcej. –

1

D Tagi dzieci są dostępne za pośrednictwem .contents http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children W twoim przypadku można znaleźć tag być używając jego klasę CSS, aby wyodrębnić zawartość

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 posiada wszystkie szczegóły nevessary

Powiązane problemy