BeautifulSoupの使い方の詳細——対象の種類
2339 ワード
Beautiful Soup 4.4.0ドキュメント:https://beautifulsoup.readthedocs.io/zh_CN/latest/
Beautiful Soupは複雑なHTMLドキュメントを複雑なツリー構造に変換し、各ノードはPythonオブジェクトであり、すべてのオブジェクトは4種類にまとめることができる:Tag,NavigablesString,BeautifulSoup,Comment.
1.Tagオブジェクト
Tagオブジェクトには多くの方法と属性があり、その中で最も重要なのはnameとattributesです.
(1)name属性
それぞれのtagには自分の名前があります.名前で取得
(2)Attributes属性
1つのtagには多くの属性がある可能性があります.tagには「class」の属性があり、値は「boldest」で、tagの属性の操作方法は辞書と同じです.
直接使うこともできます(.)属性を取ります.例:attrs
tagの属性は追加、削除、または変更することができる.もう一度言って、tagの属性操作方法は辞書と同じです.
2.NavigablesStringオブジェクト
文字列は常にTagに含まれ、BeautifulSoupはNavigablesStringクラスでtagの文字列をパッケージします.
NavigablesString文字列はPythonのUnicode文字列と同じで、ドキュメントツリーを巡回したり、ドキュメントツリーのほとんどのプロパティを検索したりすることができます.unicode()メソッドでNavigablesStringオブジェクトをUnicode文字列に直接変換できます.
3.BeautifulSoupオブジェクト
BeautifulSoupオブジェクトは1つのドキュメントのすべての内容を表す.ほとんどの場合、Tagオブジェクトとして使用できます.これは、ドキュメントツリーを巡回したり、ドキュメントツリーのほとんどのメソッドを検索したりすることをサポートします.
4.Commentオブジェクト——コメントおよび特殊文字列
Commentオブジェクトは特殊なタイプのNavigablesStringオブジェクトです.
Beautiful Soupは複雑なHTMLドキュメントを複雑なツリー構造に変換し、各ノードはPythonオブジェクトであり、すべてのオブジェクトは4種類にまとめることができる:Tag,NavigablesString,BeautifulSoup,Comment.
1.Tagオブジェクト
soup = BeautifulSoup('Extremely bold')
tag = soup.b
type(tag) #
Tagオブジェクトには多くの方法と属性があり、その中で最も重要なのはnameとattributesです.
(1)name属性
それぞれのtagには自分の名前があります.名前で取得
tag.name # u'b'
"""
tag b
soup = BeautifulSoup('Extremely bold')
tag.name b
"""
(2)Attributes属性
1つのtagには多くの属性がある可能性があります.tagには「class」の属性があり、値は「boldest」で、tagの属性の操作方法は辞書と同じです.
tag['class'] # # u'boldest'
直接使うこともできます(.)属性を取ります.例:attrs
tag.attrs # {u'class': u'boldest'}
tagの属性は追加、削除、または変更することができる.もう一度言って、tagの属性操作方法は辞書と同じです.
tag['class'] = 'verybold'
tag['id'] = 1
tag # Extremely bold
del tag['class']
del tag['id']
tag # Extremely bold
tag['class'] # KeyError: 'class'
print(tag.get('class')) # None
2.NavigablesStringオブジェクト
文字列は常にTagに含まれ、BeautifulSoupはNavigablesStringクラスでtagの文字列をパッケージします.
tag.string # u'Extremely bold'
type(tag.string) #
NavigablesString文字列はPythonのUnicode文字列と同じで、ドキュメントツリーを巡回したり、ドキュメントツリーのほとんどのプロパティを検索したりすることができます.unicode()メソッドでNavigablesStringオブジェクトをUnicode文字列に直接変換できます.
unicode_string = unicode(tag.string)
unicode_string # u'Extremely bold'
type(unicode_string) #
3.BeautifulSoupオブジェクト
BeautifulSoupオブジェクトは1つのドキュメントのすべての内容を表す.ほとんどの場合、Tagオブジェクトとして使用できます.これは、ドキュメントツリーを巡回したり、ドキュメントツリーのほとんどのメソッドを検索したりすることをサポートします.
4.Commentオブジェクト——コメントおよび特殊文字列
Commentオブジェクトは特殊なタイプのNavigablesStringオブジェクトです.
markup = ""
soup = BeautifulSoup(markup)
comment = soup.b.string
type(comment) #
comment # u'Hey, buddy. Want to buy a used parser'