2013-05-27 4 views
5

Я хотел искать в теге:Поиск по тегам с BeautifulSoup Python

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

В принципе, я хочу, чтобы подсчитать количество occurunces из <li ..> в этом дел. Однако, когда я использовал BeautifulSoup, я не могу получить тег между div

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

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

Есть ли способ подсчитать количество экземпляров li (В данном примере 4)?

ответ

12

Использование find_all:

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

содержимое в 'div' по-прежнему так:' '

 
Так что я не могу найти какой-либо' li' –

+0

@JamesHallen: Это ваш фактический HTML, или это то, что вы видите с помощью инспектора DOM? – Blender

+0

Это фактический HTML –

2

Около 12 месяцев слишком поздно. Но, в любом случае, вот решение:

soup.find_all возвращает список тегов, даже в том случае, если есть только один тег.

Изменить код на следующее:

div = soup.find('div', id='cmeProductSlatePaginiationTop') 
lis = div[0].find_all('li') 
num_lis = len(lis)` 
Смежные вопросы