ホームページ >バックエンド開発 >Python チュートリアル >Pyquery:Python' s jquery
このチュートリアルでは、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 タグを使用して、現在空の未秩序のリストにそれらを追加します。任意の要素からこのデータを抽出する前に、要素を見つけるか見つける必要があります。
ウェブページからコンテンツを抽出します
チュートリアルの冒頭で、パイカリーが文字列、ファイル、またはURLなどの複数のソースから入力を受け入れることができると言ったとき、あなたは覚えていますか? Webページには、Pythonに関する多くの情報が含まれています。消費のためにその一部を抽出しようとします。物事をシンプルに保つためにすべての 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ページを使用します。
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>文字に沿って分割した後に画像パスの最後の部分を取得して取得します。抽出できた画像の一部は次のとおりです。このチュートリアルでは、
> xMLドキュメントでjQueryクエリを作成できるPythonライブラリを使用する方法を見ました。 HTML要素の属性とCSSスタイルを操作する方法を見ました。 PyQuery
以上がPyquery:Python&#39; s jqueryの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。