web-dev-qa-db-ja.com

BeautifulSoup Python

タグ内を検索したかった:

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

基本的に、このdivでの<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
James Hallen

使用する find_all

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

約12ヶ月遅すぎます。しかし、とにかく、ここに解決策があります:

soup.find_allは、タグが1つしかない場合でも、タグのリストを返します。

コードを次のように変更します。

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