Python クローラーの xlml 解析ライブラリの包括的な理解
以下のエディターは、Python クローラーの xlml 解析ライブラリ (総合的な理解) に関する記事をお届けします。編集者はこれがとても良いと思ったので、参考として共有します。編集者をフォローして一緒に見てみましょう
1.Xpath
XQuery と xpoint はどちらも xpath 式に基づいて構築されています
2. ノード
parent (親)、child (子)、brother (兄弟)、ancestor (祖先)、descendant (子孫)
3.ノードの選択
パス式
式 | 説明 | パス式 | 結果 |
ノード名 | このノード上のすべての子ノードを選択します | bookstore | のすべての子ノードを選択します本屋要素 |
/ | ルートノードから選択 | /bookstore | ルート要素bookstoreを絶対パスとして選択 |
// | 選択したノードに一致する現在のノードから選択位置に関係なく、ドキュメントを選択します | //book | ドキュメント内の位置に関係なく、すべての本の子要素を選択します |
。 | 現在のノードを選択します | bookstore//book | 書店の子孫を選択します |
.. | 現在のノードの親ノードを選択します | ||
@ | 属性を選択 | //@lang | lang | という名前の属性をすべて選択します
述語
述語は、特定のノードまたは指定された値を含むノードを検索するために使用されます
述語は角括弧内に埋め込まれます結果 | |
本屋の子要素に属する最初のbook要素を選択します | |
本屋の子要素に属する最後のbook要素を選択します | |
書店の子要素に属する最後から2番目のbook要素を選択します | |
最初の2つを選択します書店要素の子要素 | |
は、eng | |
本屋要素の書籍要素をすべて選択し、価格値が 35.0 より大きい |
不明なノード (ワイルドカード) を選択します
* 任意の要素ノードと一致します @* 任意の属性ノードと一致します node () 任意のタイプのノードに一致します4.lxml の使用法
#!/usr/bin/python #_*_coding:utf-8_*_ from lxml import etree text=''' <p> <ul> <li class="item-0"><a href="link1.html" rel="external nofollow" rel="external nofollow" >first item</a></li> <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li> <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li> <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li> <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> </ul> </p> ''' # html=etree.HTML(text) #html对象,存储在地址中,有自动修正功能 # result=etree.tostring(html) #将html对象转化为字符串 html=etree.parse('hello.html') # result=etree.tostring(html,pretty_print=True) # print result print type(html) result= html.xpath('//li') print result print len(result) print type(result) print type(result[0]) print html.xpath('//li/@class') # 获取li标签下的所有的class print html.xpath('//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]') #获取li标签下href为link1的<a>标签 print html.xpath('//li//span') #获取li标签下所有的span标签 print html.xpath('//li[last()-1]/a')[0].text #获取倒数第二个元素的内容
以上がPython クローラーの xlml 解析ライブラリの包括的な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

なぜ私のコードはAPIによってデータを返しているのですか?プログラミングでは、APIが呼び出すときにヌル値を返すという問題に遭遇することがよくあります。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

GoまたはRustを使用してPythonスクリプトを呼び出して、真の並列実行を実現する方法は?最近、私はPythonを使用しています...

Pythonバイナリライブラリ(.whl)のダウンロードメソッドは、Windowsシステムに特定のライブラリをインストールする際に多くのPython開発者が遭遇する困難を調査します。一般的な解決策...
