コードセクション:
1 から BS4のインポートBeautifulSoup 2 3 #下面代码示例都是用此文档测试 4 html_doc = ""」 5 <HTML> <HEAD> <タイトル>ヤマネの話</タイトル> </ HEAD> 6 <BODY> 7 < Pクラス= "タイトル"> <B>ヤマネの物語</ B> </ P> 8 9 <Pクラス= "物語">一度3人の妹があった時間に、そして自分の名前だった 10 <A HREF = "http://example.com/elsie"クラス= "姉妹" ID = "リンク1">エルシー</a>を、 11 <A HREF = "http://example.com/lacie"クラス=」 姉妹」ID = "リンク2">レイシー</a>と12 <a href="http://example.com/tillie" class="sister" id="link3"> Tillieする</a>。 13は 、それらの底部はAT Aよく住んでいた。</ P> 14 15 <Pクラス= "ストーリー"> ... </ P> 16 "" " 。17スープ= BeautifulSoup(html_doc、' lxmlのは' ) 18は、 プリント(" 1; headタグを取得" ) 。19 プリント(soup.head) 20は、 プリント(" 2; B#取得Pノードノードの下に" ) 21は、 プリント(soup.pb) 22である 。#name属性取得ノード名: 23であり、 印刷(" 4;ノードの名前を取得するnameプロパティ」) 24 印刷(soup.body.name) 25の #ATTRS属性取得ノード属性は、直接辞書の形で得ることができ、結果はノードのタイプに応じて、リストまたは文字列型を返すことができる 26で 印刷(「5; Pノードの取得すべての属性」) 27 プリント(soup.p.attrs) 28 プリント(" 6; pは、クラス属性ノードを取得" ) 29 プリント(soup.p.attrs [ ' クラス' ]) 30 プリント(" 7; Pダイレクトアクセスノードクラス属性" ) 31は、 プリント(soup.p [ ' クラス' ]) 32 #:テキスト文字列属性取得ノードが要素を含む 33 印刷(「8。、テキストラベル、最初の取得の下で取得された」) 34が プリント(soup.p.string) 35 #のリストとしてその内容を取得したプロパティの直接の子ノード戻り内容を 36 プリント(「9。 ;内容プロパティは、直接の子ノードを取得し、その内容のリストを返す」) 37 [ 印刷(soup.body.contents) 38は、 #だけで発電機の種類に戻るには、プロパティが取得された子どもたちの直接の子ノード 39 印刷(「10; childrenプロパティの直接の子ノードのみが発電機の種類に戻るには、取得された」) 40 印刷(soup.body.children) 41がある #は子孫の属性取得子孫ノードのリターンを呼び出し発電機 42が 印刷("11;子孫属性取得子孫ノード戻りジェネレータ「) 43は、 プリント(soup.body.descendants) 44である #、ジェネレータに戻る親属性取得、取得親祖先ノードの親ノード 45 プリント(」12は、親属性は、親ノードを取得し、両親の祖先ノード、発電機への復帰を取得する「) 46が 印刷(soup.b.parent) 47 印刷(soup.b.parents) 48の #NEXT_SIBLINGプロパティ戻り次の兄弟ノード 49 印刷(」13であり、NEXT_SIBLINGプロパティが返す次の兄弟ノード" ) 50 プリント(soup.a.next_sibling) 51である #兄弟ノードへの復帰をprevious_siblingは、ノードが注目されている改行 52は、 プリント(「14;兄弟ノードへの復帰をprevious_siblingは、ノードが改行を留意されたい」) 53は、 プリント(soup.a.previous_sibling) 54である #next_siblings性リターンにすべての兄弟ノード 55 プリント(「NEXT_SIBLINGプロパティ戻り次の兄弟ノード15 「) 56は、 プリント(soup.a.next_siblings) 57である #ノード改行が注目されるprevious_siblingsすべての兄弟ノードを返す 58 プリント(」兄弟ノードにprevious_sibling戻り、ノードが改行を留意されたい; 16 " ) 59 プリント( soup.a.previous_siblings) 60 位次解析されたオブジェクトnext_elementとprevious_element特性、または得る 61 印刷(「17;およびnext_element previous_element属性解析されたオブジェクトを取得またはオン」) 62が 印刷(soup.a.next_element)は 63であり、 印刷(soup.a.previous_element) 64 #next_elementsまたはイテレータとprevious_elementsを転送しますコンテンツ解析する文書を訪問した後 65 印刷(「; next_elementsとprevious_elementsイテレータまたは背面アクセス内容を解析し、文書18 」) 66 印刷(soup.a.next_elements) 67 印刷(soup.a.previous_elementsを)
結果:
/ホーム/アーロン/デスクトップ/のpython3-テスト/ venv / binに / pythonの/ホーム/アーロン/ デスクトップ/のpython3-テスト/ bs4- study.py 1。;取得ヘッドタグ ヤマネの<HEAD> <タイトル> 「S・ストーリー</タイトル> </ HEAD> 2; #は、Pノードの下bノードを得る ヤマネの<B> ' Sストーリー</ B> 4。;のノード名取得name属性 本体を 5。 、取得Pノードのすべての属性 { ' クラス':[ ' 表題' ]} 6。; pは、クラス属性ノードを取得 [ ' 表題' ] 7。; Pダイレクトアクセスノードのクラス属性 [ ' タイトル'] 8;唯一の第1の取得、ラベルの下にテキストを取得 ザ・ヤマネの「S物語 。9 ;内容プロパティは、直接の子ノードを取得し、リストとして内容を返し [ 」\ N- "、<Pのクラス = 『タイトル』 > <ヤマネのB> ' S・ストーリー</ B> </ P>、' \ N- " 、<Pクラス= "ストーリー"> Aむかしスリーリトル姉妹があった後は、その名前であった < クラス = " SISTER " = HREF " http://example.com/elsie " ID = " リンク1 " >エルシーする</a>、 < クラス =" 姉妹"のhref = " http://example.com/lacie " ID = " リンク2 " >レイシー</a>のと < クラス = " 姉妹"のhref = " http://example.com/tillie " ID = " LINK3 " > Tillieする</a> 。 そして、彼らは井戸の底に住んでいます。</ p>、' \ nは'、<p個のクラス = " 物語" > ... </ P>、' \ nは'; childrenプロパティの直接の子ノードのみが発電機の種類に戻るには、取得された <0x7f0b1bd17750オブジェクトAT list_iterator> 11。;子孫の属性取得子孫ノードを返すジェネレータを呼び出します 。<0x7f0b19e17d50オブジェクトジェネレータTag.descendants AT> である12 親属性取得。親ノード、先祖ノードの親返さジェネレータ取得 <Pのクラス = 「タイトル」ヤマネの> <B> ' Sストーリーを</ B> </ P> <0x7f0b19e17d50における物体ジェネレータPageElement.parents> 13であり、プロパティ戻りNEXT_SIBLING兄弟ノード 、 14 ;兄弟ノードへの復帰をprevious_siblingは、ノードにも留意されたい改行 時間にそこにスリー・リトル・シスターズた後は、そして彼らの名前がなかった 15 ; NEXT_SIBLINGプロパティが返す次の兄弟ノード <オブジェクトジェネレータPageElement.next_siblings AT 0x7f0b19e17d50> 16 ;兄弟ノードへの復帰をprevious_sibling、ノードは、改行ことに留意されたい <オブジェクトジェネレータPageElement.previous_siblings AT 0x7f0b19e17d50> 17 とprevious_element next_element性が解決された次のオブジェクトを取得し、または1つ; エルシー Aワンス・アポン・ア・タイムがスリーリトルシスターをして、そして彼らの名前はなかった 18で、イテレータが前方またはドキュメントの解析とコンテンツnext_elementsのprevious_elementsにアクセスする <オブジェクトが発生PageElement.next_elements AT 0x7f0b19e17d50> <オブジェクトジェネレータPageElement.previous_elements AT 0x7f0b19e17d50> 完成処理します終了コード0で