2013-05-27 15 views
5

ho voluto cercare all'interno del tag:Cerca all'interno di tag con BeautifulSoup Python

<div id="cmeProductSlatePaginiationTop" class="cmePaginiation"> 
    <ul> 
     <li class="disabled"> 
     <li class="active"> 
     <li class="away-1"> 
     <li> 
    </ul> 
</div> 

Fondamentalmente, voglio contare il numero di occurunces di <li ..> in questo div. Tuttavia, quando ho usato BeautifulSoup, non posso ottenere i tag tra il div

soup = BeautifulSoup(resp) 
    tags = soup.find('div', attrs = {'class' : 'cmePaginiation'}) 
    print tags 

>>> <div id="cmeProductSlatePaginiationTop" class="cmePaginiation">&nbsp;</div>

Esiste un modo per contare il numero di istanze di li (in questo esempio 4)?

risposta

12

Uso find_all:

div = soup.find('div', id='cmeProductSlatePaginiationTop') 
lis = div.find_all('li') 
num_lis = len(lis) 
+0

il contenuto in 'div' è ancora questo:' '

 
Quindi non riesco a trovare alcun' li' –

+0

@JamesHallen: è che il codice HTML vero e proprio, o è questo ciò che vedi con un ispettore DOM? – Blender

+0

È l'HTML effettivo –

2

Circa 12 mesi di ritardo. Ma, comunque, ecco la soluzione:

soup.find_all restituisce un elenco di tag, anche nel caso in cui vi sia un solo tag.

Modificare il codice al seguente:

div = soup.find('div', id='cmeProductSlatePaginiationTop') 
lis = div[0].find_all('li') 
num_lis = len(lis)` 
Problemi correlati