要素の選択
Cheerio を使用すると、CSS セレクタ を使用して HTML ドキュメントから要素を選択できます。これにより、タグ名、クラス名、属性値などの基準に基づいて要素を選択できます。このガイドでは、CSS セレクタを使用して要素を取得する方法の概要を説明します。
Cheerio で要素を選択するには、まずライブラリをインポートしてドキュメントを読み込む必要があります。例:
import * as cheerio from 'cheerio';
// Load the document using any of the methods described in the "Loading Documents" section.
const $ = cheerio.load('<html>...</html>');
ドキュメントを読み込んだら、$
関数を使用して要素を選択できます。$
関数は jQuery の $
関数と同様に機能し、タグ名、クラス名、属性値に基づいて要素を選択できます。
$
関数を使用して要素を選択する方法の例をいくつか示します。
- ドキュメント内のすべての
<p>
要素を選択するには
const $p = $('p');
Cheerio では、変数名に $
をプレフィックスとして付けることで、Cheerio オブジェクトが含まれていることを示すのが慣例です。これは必須ではありませんが、推奨される方法です。
- 特定のクラス名を持つ要素を選択するには
const $selected = $('.selected');
- 特定の属性値を持つ要素を選択するには
const $selected = $('[data-selected=true]');
XML 名前空間を使用して選択できますが、CSS 仕様 により、セレクタを有効にするにはコロン (:
) をエスケープする必要があります。
$('[xml\\:id="main"');
- 複数の条件に一致する要素を選択するには、セレクタを組み合わせることができます。たとえば、クラス
selected
を持つすべての<p>
要素を選択するには
const $selected = $('p.selected');
- さらに、スペース (
<div>
要素の子孫であるすべての<p>
要素を選択するには
const $p = $('div p');
>
文字を使用して、他の要素の直接の子孫である要素を選択することもできます。たとえば、<div>
要素の直接の子孫であるすべての<p>
要素を選択するには
const $p = $('div > p');
サポートされているすべてのセレクタの一覧については、Cheerio の基盤となる CSS セレクタライブラリ css-select
のドキュメントを参照してください。サポートされているセレクタの一覧はこちら。たとえば、「hello」という単語を含む <p>
要素を選択するには
const $p = $('p:contains("hello")');
Cheerio は、ドキュメント内での位置に基づいて要素を選択できるいくつかの jQuery 固有の拡張機能もサポートしています。たとえば、ドキュメント内の最初の <p>
要素を選択するには
const $p = $('p:first');
これらの拡張機能を実装するライブラリである cheerio-select を参照して、利用可能な機能を確認してください。
詳細については、jQuery の要素選択に関するガイド 要素の選択 と MDN も参照してください。
最後に、カスタム CSS擬似クラスを追加するには、Cheerio の拡張ガイド を参照してください。