Beautiful-soup-kinds-of-objects
美しいスープ-オブジェクトの種類
htmlドキュメントまたは文字列をbeautifulsoupコンストラクターに渡すと、beautifulsoupは基本的に複雑なhtmlページを別のpythonオブジェクトに変換します。 以下では、4つの主要な種類のオブジェクトについて説明します。
- Tag
- NavigableString
- BeautifulSoup
- コメント
タグオブジェクト
HTMLタグは、さまざまなタイプのコンテンツを定義するために使用されます。 BeautifulSoupのタグオブジェクトは、実際のページまたはドキュメントのHTMLまたはXMLタグに対応します。
タグには多くの属性とメソッドが含まれており、タグの2つの重要な機能は名前と属性です。
名前(tag.name)
すべてのタグには名前が含まれており、サフィックスとして「.name」を介してアクセスできます。 tag.nameは、タグのタイプを返します。
ただし、タグ名を変更すると、BeautifulSoupによって生成されたHTMLマークアップにも反映されます。
属性(tag.attrs)
タグオブジェクトは、任意の数の属性を持つことができます。 タグ<b class =” boldest”>には、値が「boldest」である属性「class」があります。 タグではないものは基本的に属性であり、値を含む必要があります。 属性にアクセスするには、キーにアクセスする(上記の例の「クラス」にアクセスするなど)か、「。attrs」から直接アクセスします。
タグの属性にはあらゆる種類の変更を加えることができます(追加/削除/変更)。
多値属性
HTML5属性の一部は複数の値を持つことができます。 最も一般的に使用されるのは、複数のCSS値を持つことができるクラス属性です。 その他には、「rel」、「rev」、「headers」、「accesskey」、「accept-charset」などがあります。 美しいスープの多値属性がリストとして表示されます。
ただし、属性に複数の値が含まれているが、HTML標準の任意のバージョンによる多値属性ではない場合、美しいスープは属性をそのままにします-
タグを文字列にすると、複数の属性値を統合できます。
「get_attribute_list」を使用すると、複数値であるかどうかに関係なく、常にリスト、文字列である値を取得できます。
ただし、ドキュメントを「xml」として解析した場合、多値属性はありません-
navigablestringオブジェクトは、タグのコンテンツを表すために使用されます。 コンテンツにアクセスするには、タグ付きの「.string」を使用します。
文字列を別の文字列に置き換えることはできますが、既存の文字列を編集することはできません。
BeautifulSoup
BeautifulSoupは、Webリソースをスクレイピングしようとしたときに作成されるオブジェクトです。 それで、それは私たちがかき集めようとしている完全な文書です。 ほとんどの場合、タグオブジェクトとして扱われます。
コメント
コメントオブジェクトは、Webドキュメントのコメント部分を示します。 これはNavigableStringの特別なタイプです。
navigablestringオブジェクトは、タグ自体ではなく、タグ内のテキストを表すために使用されます。