2013-05-27 52 views
5

我想在标签内搜索:搜索与BeautifulSoup的Python

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

基本上,我希望计算这个div的<li ..> occurunces的数量。然而,当我用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)`