ホームページ >バックエンド開発 >Python チュートリアル >Python クローラーでの lxml-etree と xpath の併用 (ケースあり)

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)

不言
不言オリジナル
2018-09-07 16:13:4012771ブラウズ

この記事では、Python クローラーにおける lxml-etree と xpath の併用方法を紹介します (事例あり) 非常に詳しい内容となっておりますので、お役に立てれば幸いです。

lxml: Python の HTML/XML パーサー

公式 Web サイトのドキュメント: https://lxml.de/

使用する前に、lxml パッケージをインストールする必要があります

関数:

1. HTML の解析: etree.HTML(text) を使用して、文字列形式の HTML フラグメントを HTML ドキュメントに解析します

2. XML ファイルの読み取り

3.etree と XPath を併用します

lxml のインストール

[PyCharm]>[ファイル]>[設定]>[プロジェクト インタープリター]>[ ] > ;[lxml]>[install]

詳細な操作のスクリーンショット:

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)

# #lxml-etree の使用法

  • ケース v25 ファイル: https://xpwi.github.io/py/pycrawler/py25etree.py

  • lxml を使用して HTML コードを解析する

  • # 先安装lxml
    # 用 lxml 来解析HTML代码
    
    from lxml import etree
    
    text = &#39;&#39;&#39;<p>
        <ul>
            <li class="item-0"><a href="0.html">item 0 </a></li>
            <li class="item-1"><a href="1.html">item 1 </a></li>
            <li class="item-2"><a href="2.html">item 2 </a></li>
            <li class="item-3"><a href="3.html">item 3 </a></li>
            <li class="item-4"><a href="4.html">item 4 </a></li>
            <li class="item-5"><a href="5.html">item 5 </a></li>
        </ul>     </p>&#39;&#39;&#39;
    
    # 利用 etree.HTML 把字符串解析成 HTML 文件
    html = etree.HTML(text)
    s = etree.tostring(html).decode()
    
    print(s)
実行結果

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)#lxml-etree

## を使用する

# ケース v26etree2 ファイル: https://xpwi.github.io/py/pycrawer/py26etree2.py
  • XML ファイルを読み取る:
  • # lxml-etree读取文件from lxml import etree
    
    xml = etree.parse("./py24.xml")
    sxml = etree.tostring(xml, pretty_print=True)
    
    print(sxml)

    実行結果

etree と XPath を一緒に使用するPython クローラーでの lxml-etree と xpath の併用 (ケースあり)

Case v26exppath.File: https: //xpwi.github.io/py/pycrawler/py26exppath.py
  • etree と XPath は一緒に使用されます:
  • # lxml-etree读取文件from lxml import etree
    
    xml = etree.parse("./py24.xml")
    print(type(xml))# 查找所有 book 节点rst = xml.xpath(&#39;//book&#39;)
    print(type(rst))
    print(rst)# 查找带有 category 属性值为 sport 的元素rst2 = xml.xpath(&#39;//book[@category="sport"]&#39;)
    
    print(type(rst2))
    print(rst2)# 查找带有category属性值为sport的元素的book元素下到的year元素rst3 = xml.xpath(&#39;//book[@category="sport"]/year&#39;)
    rst3 = rst3[0]
    
    print(&#39;-------------\n&#39;,type(rst3))
    print(rst3.tag)
    print(rst3.text)

    実行結果
etree と XPath を併用した結果

##関連する推奨事項:

Python クローラーでの lxml-etree と xpath の併用 (ケースあり)##Python クローラー用の xpath の基本の詳細な説明使用法

##Python クローラーとは何ですか? Python はなぜクローラーと呼ばれるのでしょうか?

以上がPython クローラーでの lxml-etree と xpath の併用 (ケースあり)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。