python3 --- --- BeautifulSoupノードセレクタ

コードセクション:

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で

おすすめ

転載: www.cnblogs.com/aaron456-rgv/p/12129831.html