Pythonの爬虫類--Xpath

Xpath

XPathは、XMLドキュメントの言語での発見情報であり、XML文書内の要素と属性をナビゲートするために使用され、それはまた、HTML文書で作業に使用することができます。多くの場合、情報抽出のページを見つけるために、XPathを使用してPythonの爬虫類の開発、XPathのが非常に重要。

1、XPathノード

Xpathでは、XML文書をツリーのノードとして扱われ、ノードの7種類があります。

  1. 要素
  2. プロパティ
  3. テキスト
  4. 名前空間
  5. 処理の手順
  6. 注記
  7. ドキュメント(ルート)ノード

例を見てください:

<xml version="1.0" encoding="ISO-8859-1">
<classroom>
    <student>
        <id>1001</id>
        <name lang="en">marry</name>
        <age>20</age>
        <country>China</country>
    </student>
</classroom>

<classroom>文書ノードは、
<id>1001</id>要素ノードである
lang="en"属性ノードである
marryテキストノードである
ノードの関係は、親(親)、子供(子供)、同胞(兄弟)、先祖(祖先)、子孫(子孫)が含まれます。

2、XPath構文

パス式

Xpathの使用パス式は、 XML文書またはノードのセット内のノードを選択します。ノードは、選択されたパスへのパスに沿ってステップまたは手順です。
一般的なパス式:

表現 説明
ノード名 選択したノードのすべての子ノード
/ ルートノードから選択します。
// ノードの任意の場所を選択します
現在のノードを選択します
。.. 現在のノードの親を選択します
@ [プロパティ]を選択します

例を見てください:

<xml version="1.0" encoding="ISO-8859-1">
<classroom>
    <student>
        <id>1001</id>
        <name lang="en">marry</name>
        <age>20</age>
        <country>China</country>
    </student>
    <student>
        <id>1002</id>
        <name lang="en">jack</name>
        <age>25</age>
        <country>USA</country>
    </student>
</classroom>
結果を実現 パス式
教室のすべての子ノードを選択します 教室
教室のルート要素を選択します /教室
学生の要素教室の全てに属するサブ要素を選択します 教室/学生
文書に関係なく、自分の位置を、全てsudentサブ要素を選択します //学生
教室の生徒の要素に属するすべての要素の子孫を選択し、それらが教室の下に配置されているどのような位置に関係なく、 教室//学生
LANGという名前のプロパティをすべて選択 // @ LANG
述語

特定のノードまたは述語指定した値を含むノードを選択します。
使用ブラケット述語を表します[]:

結果を実現 パス式
第一副教室の生徒の要素に属する要素を選択 /教室/学生[1]
教室の生徒の要素に属する最後の子要素を選択します /教室/学生[最後の()]
第二教室の生徒の要素の逆数に属するサブ要素を選択します /教室/学生[最後の() - 1]
教室のサブ要素を選択して最初の2つの要素のstudaent /教室/学生[位置()<3]
lang属性名を持つすべての要素を選択します //名前[@lang]
すべてのlang属性名の要素を選択し、「EN」の値を持っているの //名[@ LANG = 'EN']
すべての教室要素studnet要素を選択し、要素がその年齢20の値よりも大きいです /教室/学生[> 20歳]
要素名の要素の学生の教室のすべての要素を選択し、その年齢の要素の値が20より大きい /教室/学生[年齢> 20] /名前
通配符
  • ワイルドカード「*」は、未知の要素と一致します
  • 「|」複数のパスを選択し、ワイルドカードを使用します
結果を実現 パス式
すべての子要素の教室の要素を選択します /教室/*
文書内のすべての要素を選択します // *
name属性を持つすべての要素を選択します //名[@*]
すべての要素の名前や年齢構成要素の学生の要素を選択します //学生/名| //学生/年齢
すべての要素の名前、年齢の教室要素に属する学生の要素を選択して、すべての要素を文書化 /教室/学生/名| //年齢

おすすめ

転載: www.cnblogs.com/lykxbg/p/12002936.html
おすすめ