以下のようなhtmlから、titleタグやdivタグの要素(メタ情報、内部のテキスト)の取得方法を確認する。
<html>
<head>
<title>
Test Page
</title>
</head>
<body>
<div class="main">
<p>
hello, world!!
</p>
</div>
<div class="sub">
<p>
sub text
</p>
</div>
</body>
</html>
サンプルコード
from bs4 import BeautifulSoup
doc = ['<html><head><title>Test Page</title></head><body>',
'<div class="main"><p>hello, world!!</p></div>',
'<div class="sub"><p>sub text</p></div>',
'</body></html>']
soup = BeautifulSoup(''.join(doc), "html.parser")
print (soup.prettify())
# titleタグを取得
print(soup.title) # <title>Test Page</title>
# titleタグの内部のテキストを取得
print(soup.title.string) # Test Page
# 最初のdivタグ取得
div = soup.div
print(div) # <div class="main"><p>hello, world!!</p></div>
# divタグのタグ名を取得
print(div.name) # div
# divタグの属性を取得
print(div.attrs) # {'class': ['main']}
# divタグのclassを取得
print(div['class']) # ['main']
# divタグの内部のテキストを取得
print(div.string) # hello, world!!
# divタグの次のpタグの内部テキストを取得
print(div.p.string) # hello, world!!