美しいスープ-ページのスープ
前のコード例では、文字列メソッドを使用して美しいコンストラクターを介してドキュメントを解析します。別の方法は、開いているファイルハンドルを介してドキュメントを渡すことです。
from bs4 import BeautifulSoup
with open("example.html") as fp:
soup = BeautifulSoup(fp)
soup = BeautifulSoup("<html>data</html>")
まず、ドキュメントがUnicodeに変換され、HTMLエンティティがUnicode文字に変換されます。</ p>
import bs4
html = '''<b>tutorialspoint</b>, <i>&web scraping &data science;</i>'''
soup = bs4.BeautifulSoup(html, 'lxml')
print(soup)
出力
<html><body><b>tutorialspoint</b>, <i>&web scraping &data science;</i></body></html>
次に、BeautifulSoupはHTMLパーサーを使用してデータを解析するか、XMLパーサーを使用して解析するように明示的に指示します。
HTMLツリー構造
HTMLページのさまざまなコンポーネントを調べる前に、まずHTMLツリー構造を理解しましょう。
ドキュメントツリーのルート要素はhtmlであり、親、子、兄弟を持つことができます。これは、ツリー構造内の位置によって決まります。HTML要素、属性、テキスト間を移動するには、ツリー構造内のノード間を移動する必要があります。
ウェブページが以下のようになっているとしましょう-
これは次のようにhtmlドキュメントに変換されます-
<html><head><title>TutorialsPoint</title></head><h1>Tutorialspoint Online Library</h1><p<<b>It's all Free</b></p></body></html>
つまり、上記のhtmlドキュメントの場合、次のようなhtmlツリー構造があります。