Pyquery:Python' s jquery

William Shakespeare
リリース: 2025-03-01 10:22:09
オリジナル
552 人が閲覧しました

このチュートリアルでは、jqueryライブラリを使用する場合、$()

を使用して得られるものに似ているpyquery オブジェクトを見ることができます。選択した要素のHTMLコンテンツを取得または設定できるPyqueryのHTML()メソッドと同じように。

現在、Webページオブジェクトはドキュメント全体の代表であるため、ページ全体のマークアップを返します。例を次に示します。

print(webpage.html())<br><br>'''<br><head><br><meta charset="utf-8"/><br><title>A Simple Webpage</title><br><meta name="viewport" content="width=device-width, initial-scale=1"/><br></head><br><br><body><br>    <p>Hello <b>world</b>! This is a basic webpage.</p><br>    <p>Here is a list of some <i>random</i> words:</p><br>    <ul ><br>        <li>Impedimenta</li><br>        <li>Decompensation</li><br>        <li>Tergiversation</li><br>        <li>Transcendentalism</li><br>        <li>Polyphiloprogenitive</li><br>    </ul><br></body><br>'''<br>
ログイン後にコピー
ログイン後にコピー
次のコードを見てみましょう。ここで、最初にHTML()

メソッドを使用してセレクターのHTMLを設定します。他に何が変更できるか見てみましょう。

属性操作
print(webpage("p").html())<br><br>'''<br>Hello <b>world</b>! This is a basic webpage.<br>'''<br>
ログイン後にコピー
ログイン後にコピー

pyqueryは、できるだけ密接にjquery APIをミラーリングしようとします。これは、リストからclass属性と呼ばれる属性メソッドにアクセスできることを意味します。また、attr()

メソッドを使用して、Pyqueryのattr()
from pyquery import PyQuery as pq<br><br>webpage = pq(filename = 'document.html')<br><br>print(webpage("p").html())<br>'''<br>Hello <b>world</b>! This is a basic webpage.<br>'''<br><br>webpage("p").html("Hello <b>world</b>! I have changed this paragraph.")<br><br>print(webpage("p").html())<br>'''<br>Hello <b>world</b>! I have changed this paragraph.<br>'''<br>
ログイン後にコピー
ログイン後にコピー
メソッドをATTR()

メソッドに追加します。最初の要素ではなく、すべてのマッチング要素の属性値も設定します。要素では、CSSクラスをそれぞれ追加または削除するRemoveClass()

メソッドの使用を検討することもできます。メソッド名を使用することもできます。remode_class()

アンダースコア表記をより快適に作業する場合。

例は次のとおりです。 jqueryのもの。スタイルを更新した後、新しいマークアップを updated_markup.htmlというファイルに保存しました。マークアップにさまざまな変更を加えた後も同じことを行うこともできます。

要素の作成、削除、および追加

サンプルHTMLドキュメントには単語のリストが含まれていることを思い出すかもしれません。単語のリストを拡張できますか?もちろんできます。必要なのは、prepend()

メソッドを使用することだけです。 prepend()
webpage("p").eq(0).attr("class", "greeting hello-message")<br>
ログイン後にコピー
メソッドは、通過した値を呼び出しノードにプレイティングします。例を以下に示します。

要素を追加して準備するために持っているもう1つのオプションは、prepend_to()

メソッドの使用です。 prepend_to()

メソッドは、通信ノードを通過したノードにプレイティングします。ただし、これらのメソッドを文字列に単純に呼び出すことはできないことを忘れないでください。以下に示すように、動作の呼び出しのために、それらをPyqueryオブジェクトに包む必要があります。

print(webpage.html())<br><br>'''<br><head><br><meta charset="utf-8"/><br><title>A Simple Webpage</title><br><meta name="viewport" content="width=device-width, initial-scale=1"/><br></head><br><br><body><br>    <p>Hello <b>world</b>! This is a basic webpage.</p><br>    <p>Here is a list of some <i>random</i> words:</p><br>    <ul ><br>        <li>Impedimenta</li><br>        <li>Decompensation</li><br>        <li>Tergiversation</li><br>        <li>Transcendentalism</li><br>        <li>Polyphiloprogenitive</li><br>    </ul><br></body><br>'''<br>
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、同じ出力が得られます。また、Children()を呼び出すだけで、ドキュメントからノードを削除することもできます。私たちの場合、これはすべてのリスト要素を意味します。その後、li タグを使用して、現在空の未秩序のリストにそれらを追加します。任意の要素からこのデータを抽出する前に、要素を見つけるか見つける必要があります。メソッドを使用して、その特定のセレクターの祖先を検索することに興味がある場合は要素を探すことができます。使用できる他の同様の方法は、prev_all()

です。例は次のとおりです。

ウェブページからコンテンツを抽出します

チュートリアルの冒頭で、パイカリーが文字列、ファイル、またはURLなどの複数のソースから入力を受け入れることができると言ったとき、あなたは覚えていますか? Webページには、Pythonに関する多くの情報が含まれています。消費のためにその一部を抽出しようとします。物事をシンプルに保つためにすべての h2レベルの見出しを取得できるかどうかを見てみましょう。これは、単に

h2
print(webpage("p").html())<br><br>'''<br>Hello <b>world</b>! This is a basic webpage.<br>'''<br>
ログイン後にコピー
ログイン後にコピー
を使用して、メインコンテンツの一部ではない追加の見出しを与えてくれたためです。また、情報を抽出するために使用する適切なセレクターを決定する前に、自分でWebページの同様の分析を行う必要があります。

モジュールを使用して画像をダウンロードするPythonのリクエストモジュールに関するチュートリアルをすでに作成しています。私が含めた例の1つの制限は、私たちが画像のパスをハードコーディングしているということでした。 Pyquery Libraryを使用して、Webページから画像パスを抽出し、リクエストモジュールに送信してダウンロードしましょう。この例では、米国に関するWikipediaページを使用します。 UIアイコンなどの画像をダウンロードしたくありません。そのため、より具体的なセレクターを使用して画像を抽出します。画像ファイル名は、

/
from pyquery import PyQuery as pq<br><br>webpage = pq(filename = 'document.html')<br><br>print(webpage("p").html())<br>'''<br>Hello <b>world</b>! This is a basic webpage.<br>'''<br><br>webpage("p").html("Hello <b>world</b>! I have changed this paragraph.")<br><br>print(webpage("p").html())<br>'''<br>Hello <b>world</b>! I have changed this paragraph.<br>'''<br>
ログイン後にコピー
ログイン後にコピー
文字に沿って分割した後に画像パスの最後の部分を取得して取得します。抽出できた画像の一部は次のとおりです。このチュートリアルでは、Pyquery:Python&#39; s jquery

> xMLドキュメントでjQueryクエリを作成できるPythonライブラリを使用する方法を見ました。 HTML要素の属性とCSSスタイルを操作する方法を見ました。 PyQuery

既存の要素に要素を作成して追加し、要素の前後に新しい要素を挿入する方法を学びました。このチュートリアルで見たのは、氷山の一角にすぎません。このライブラリが提供することはさらに多くあります。

このライブラリの使用に関する詳細については、公式ドキュメントを読むことをお勧めします。

以上がPyquery:Python&#39; s jqueryの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート