美しいスープは、あなたがそれを与える何かを解析し、あなたのためのツリートラバーサルのものを行います。
BeautifulSoupライブラリはトラバース、解決され、メンテナンス「タグツリー」関数ライブラリ(トラバーサルは一度だけ行われ、訪問を行いましたツリーの各ノードに続くルートに沿って帯状の検索を参照します)。https://www.crummy.com/software/BeautifulSoup
BS4インポートBeautifulSoupから:BeautifulSoupライブラリは、私たちはしばしばライブラリをインポート、BS4を呼び出します。前記インポートBeautifulSoup即ち主BS4でBeautifulSoupクラス。
BS4パーサライブラリ
クラスBeautifulSoupの基本要素
インポート要求。1 2 BeautifulSoupインポートBS4から 。3 。4 requests.get RESの=( 'http://www.pmcaff.com/site/selection') 。5 = BeautifulSoupスープ(res.text、 'lxmlの') 。6プリント(スープ。 A) 。7#HTML構文中に存在する任意のタグを使用することができるスープ。<タグ>アクセスを得るために、対応するコンテンツは、スープ。<タグ>は最初のHTML文書を返す同じ<タグ>が複数存在します。 8 。9プリント(soup.a.name) 10#各<タグ>は、独自の名前を持つ、.nameの<タグ>によって得ることができる、文字列型 。11 12プリント(soup.a.attrs)で 13プリント(スープです。 a.attrs [ 'クラス']) 14#<タグ>は1つまたは複数の属性、タイプ辞書有していてもよい 15 16プリント(soup.a.string)を 17#.stringタグnonattributedに取ることができ、<タグ>が文字列 18がある 。soup1 19 BeautifulSoup =( '<P> <! -ここにコメントがある- > </ P>'、 'lxmlの' 22#コメントは、特殊なタイプですまた、<タグ> .stringて撮影することができます
結果:
<a href=""> class="no-login"登录する</a>
A
{ 'HREF': ''、 'クラス':[ '非ログイン']} [ '非ログイン']
ログイン
ここにコメントがあります
<クラスのbs4.element.Comment '>
HTMLコンテンツBS4トラバーサルライブラリー
HTMLの基本構造
木のダウンリンクタグを横断
ここで、BeautifulSoupタグタイプは、ツリーのルートです。
子ノード#1横断 soup.body.childrenに子供のための2: 3プリント(child.name) 4。 5#子孫ノードトラバーサル。 6 soup.body.descendantsで子供のための:。 。7プリント(child.name)
ツリーのタグを横断
#1 ...分析ません... ELSEので、もし、スープ自体を含む、すべての祖先ノードを横断 soup.a.parentsに親のための2: 3なし親がいる場合: 4印刷(親が) 。5他: 。6印刷( parent.name)
結果:
DIV
DIV
体
HTML
[資料]
タグツリートラバーサルパラレル
1 # 遍历后续节点 2 for sibling in soup.a.next_sibling: 3 print(sibling) 4 5 # 遍历前续节点 6 for sibling in soup.a.previous_sibling: 7 print(sibling)
bs4库的prettify()方法
prettify()方法可以将代码格式搞的标准一些,用soup.prettify()表示。在PyCharm中,用print(soup.prettify())来输出。