2013-05-27 13 views
5

Ich wollte im Tag suchen:Suche innerhalb der Tags mit BeautifulSoup Python

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

Grundsätzlich mag ich die Anzahl der occurunces von <li ..> in diesem div zählen. Allerdings, wenn ich beautifulsoup verwendet wird, kann ich nicht die Tags in erhalte zwischen den div

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

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

Gibt es eine Möglichkeit, die Anzahl der Instanzen von li zu zählen (in diesem Beispiel 4)?

Antwort

12

Verwendung find_all:

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

der Inhalt in 'div' noch dies:' '

 
So kann ich nicht' li' –

+0

@JamesHallen finden: Ist das Ihre eigentliche HTML, oder sehen Sie das bei einem DOM-Inspektor? – Blender

+0

Es ist das eigentliche HTML –

2

über 12 Monate zu spät. Aber, hier ist die Lösung:

soup.find_all gibt eine Liste von Tags zurück, auch wenn nur ein Tag vorhanden ist.

Ändern Sie den Code wie folgt:

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