Python-> Beautiful Soupを使用して、次のようなWebページを解析しようとしています。
ハイライトされたtd divの内容を抽出しようとしています。現在、私はすべてのdivを取得することができます
alltd = soup.findAll('td')
for td in alltd:
print td
しかし、まだ30+を返しますが、300 +よりも管理しやすいクラス "tablebox"のtdsを検索するために、その範囲を狭めようとしています。
上の図で強調表示されているtdの内容を抽出するにはどうすればよいですか?
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
これにより、「tablebox」クラスの親divを持つ「align-right」クラスのすべてのtdタグのすべてのテキストが印刷されます。