0

私が解析しているHTML:

<h2 class="tabellen_ueberschrift al">Cards</h2>
<table class="tabelle_grafik lh" cellpadding="2" cellspacing="1">
        <tr>
            <th class="al" colspan="3">CA Osasuna</th>              
        </tr>
                                                            <tr class="hell">
        <a href="example.com" class="fb s10" title="Sisi">Sisi</a>
        </tr>
                                                            </td></table>

<table class="tabelle_grafik lh" cellpadding="2" cellspacing="1">
        <tr>
            <th class="al" colspan="3">FC Barcelona</th>                
        </tr>
        <a href="example.com" class="fb s10" title="Busquets">Busquets</a>
        </tr>
                                                            </td></table>

タグのすべてのインスタンスを数えようとしていますaが、これはサッカーチームごとに個別に行う必要があります。したがって、2番目に遭遇すると<table class="...">、カウンターは0からカウントを開始する必要があります(つまり、2つの別々のカウンターが必要です)。

これまでのところ、カウントを行って合計するコードしか思いつきませんでした。したがって、同じカウンターが1つしかありません。

Pythonにどこで停止して2番目のカウンターを導入するかを伝える方法に苦労しています。

行き詰まるまでは非常に簡単なので、コードをコピーしていません。どんなアイデアでも大歓迎です!

4

1 に答える 1

2

テーブルごとのカウント:

for table in soup.find('table', class_='tabelle_grafik'):
    count = len(table.find('a'))

もちろん、カウントごとに何かをする必要があります。それらを辞書に保存したり、印刷したり、リストに追加したりします。

クラブごとの辞書に保存する例:

clubs = {}

for table in soup.find_all('table', class_='tabelle_grafik'):
    club_name = table.find('th', class_='al').text
    count = len(table.find_all('a'))
    clubs[club_name] = count
于 2013-04-09T10:12:12.747 に答える