XPath-「XMLパス言語
利点:
(1)直接XMLで情報を調べることができます
(2)HTMLのサポートを検索します
(3)要素および属性をナビゲートします
どのように使用するには:
1 から lxmlのインポートetree 2セレクタ= etree.HTML(対象コンテンツ) #の変換内容は、XPath形式標的とする 3 selector.xpath(式) 位のリストを見つけるために返さ
文法の基礎知識:
(1)//ダブルスラッシュ:ルート・ノードを配置し、フルテキストがスキャンされ、リターンのリストの形式で、ドキュメント内のすべての適格なコンテンツを選択
(2)/シングルスラッシュ:操作内容の電流経路上の標識の現在のレベルのパスタグまたはラベル経路を見てみます
(3)/テキスト():現在のパスのテキストの内容を取得します。
(4)/ @のXXX:電流経路タグの属性値を抽出します
(5)|パイプ記号:あるいは記号は、使用| DIV |よう// pとパス、または類似の特徴の複数を選択することができます。
(6)ポイント:現在のノードを選択します
(7)..二点:現在のノードの親ノードを選択します
擬似コードの例:
lxmlのインポートetree HTML = ' ' セレクタ = etree.HTML(HTML) #の一致ルートディレクトリ、ID = 'ULの内容UL'タグのLi 'DIVタグ=下ID'でテキストラベル 含量=セレクタ.xpath(" // divの[@ ID = 'コンテンツ'] / UL [@ ID = 'UL'] /リー/テキスト()" ) のための I でのコンテンツ: 印刷(I) #は、タブのルートディレクトリにマッチします使う"@タグ属性"方法、タグのhref属性値取得 #content = selector.xpath(" // A / @のHREFを")
特別な使い方:
(1)開始、と
= selector.xpathコンテンツ(" // DIV [ソーホーが開始-と(@id、 'A')] /テキスト()" ) #の抽出のdiv IDは、<DIV ID =「AABBように、テキストの先頭にタグの属性値「> AA </ div>の、抽出されたAA
(2)テキスト()と位置()
タグ属性を抽出する必要がない場合、タグは、(テキストによって識別することができる)または位置()メソッド
#ハロー内のテキストラベルのp divタグとして抽出されたテキスト コンテンツ= selector.xpath(「// divの[テキスト()= 『こんにちは』] / P /テキスト()」) #のエキスdivタグ内のテキストハローP 2番目のテキストラベル 内容= selector.xpath(" // divの[テキスト()= 'こんにちは'] / P [位置()= 2] /テキスト()" ) #はまたのような、複数のフィルタを使用することができますUL [位置()= 3] [ID @ = 'A']
XPathの二つの方法:
(1)手動入力ラベリング規則
(2)ブラウザの開発者モード---「右コピーのXPathでターゲットタグを検索します