2012-11-02 8 views
24

のための子供たちを見つけます。現在、私は美しいスープは、私がPython->美しいスープとこのようになり、Webページを解析しようとしていている特定のdiv

alltd = soup.findAll('td') 


for td in alltd: 
    print td 

により、すべてのdivを取得することができますしかし、私はおそらくまだ返し30+が、300をより管理しやすい数であるだろうクラス「tablebox」でTDSを検索することの範囲を狭めるしようとしています+。

上記のハイライトされたtdの内容をどのように抽出できますか?

答えて

42

BeautifulSoupが1つの要素内で見つけた要素は、その親要素と同じ型を持ちます。つまり、さまざまなメソッドを呼び出すことができます。

だから、これはややあなたの例のコードを働いている:

soup = BeautifulSoup(html) 
divTag = soup.find_all("div", {"class": "tablebox"}): 

for tag in divTag: 
    tdTags = tag.find_all("td", {"class": "align-right"}) 
    for tag in tdTags: 
     print tag.text 

これは、クラスと親のdivを持っている「揃える右」のクラスを持つすべてのtdタグのすべてのテキストを印刷します"テーブルボックス"。

+1

親ループでは、タグはスープ要素ではなく「div」要素なので、エラーになると思いますか? 'div'要素には、 'find_all'というメソッドはありません。 – LKM

関連する問題