2012-07-23 2 views
6

Qualcuno può dirmi come estrarre il valore di un tag utilizzando BeautifulSoup? Ho letto la documentazione, ma ho avuto difficoltà a navigare attraverso di essa. Per esempio, se ho avuto:Valore tag pull con BeautifulSoup

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

Come dovrei solo tirare "FunStuff" busign BeautifulSoup/Python?

Edit: Sto usando la versione 3.2.1

+0

Questo è BeautifulSoup 3 o BeautifulSoup 4? –

+0

suo 3.2.1 ..10char – user1463925

risposta

6

È necessario avere qualcosa per identificare l'elemento che stai cercando, ed è difficile dire che cosa è in questa domanda.

Ad esempio, entrambi di questi verranno stampati 'Funstuff' in BeautifulSoup 3. Si cerca un elemento span e si ottiene il titolo, un altro cerca gli span con la classe data. Sono possibili molti altri modi validi per arrivare a questo punto.

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

Domanda: la mia dichiarazione di importazione per BeautifulSoup è: da BeautifulSoup importazione BeautifulSoup, DatiC Tuttavia, il codice di cui sopra sembra funzionare solo quando: import BeautifulSoup Qualsiasi idea del perché? – user1463925

+0

Questo è solo Python. Se stai facendo un'importazione relativa ('da BeautifulSoup import BeautifulSoup'), cambia la linea da' soup = BeautifulSoup.BeautifulSoup (... 'a' soup = BeautifulSoup (... ' Vedi http: // docs. python.org/tutorial/modules.html per altro. –

1

Tag dei bambini sono disponibili tramite .contents http://www.crummy.com/software/BeautifulSoup/bs4/doc/#contents-and-children Nel tuo caso è possibile trovare il tag sia utilizzando la sua classe CSS per estrarre il contenuto

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 ha tutti i dettagli nevessary