- 自動のセッション管理
- 全世界195ヵ国の各都市がターゲット対象
- 無制限の同時セッション
PuppeteerでXPathによる要素の検索方法
Puppeteerでは、ページ.$x()関数を利用することで、CSSセレクタではなくXPathで要素を簡単に検索できます。これは複雑なHTML構造をナビゲートする際に特に有用です。PuppeteerでXPathを使用するより詳細で効率的な方法を以下に示します。
以下のスクリプトは、Puppeteerを使用してXPathで要素を検索し、それらと対話する方法を示しています:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
// Bright Dataのウェブサイトを開く
await page.goto('https://brightdata.com');
// XPathを使用して最初のh2要素を検索
const [firstH2] = await page.$x('//h2');
if (firstH2) {
const h2Text = await page.evaluate(el => el.textContent, firstH2);
console.log('最初のH2テキスト:', h2Text);
} else {
console.log('H2要素が見つかりません');
}
// XPathを使用して特定のクラスを持つすべてのアンカー要素を検索
const allLinks = await page.$x('//a[@class="specific-class"]');
const linkTexts = await Promise.all(
allLinks.map(link => page.evaluate(el => el.textContent, link))
);
console.log('特定クラスを持つ全リンク:', linkTexts);
// ブラウザを閉じる
await browser.close();
})();
説明
- ブラウザの起動:
- このスクリプトはヘッドレスモードではないPuppeteerブラウザを起動し、ブラウザの動作をリアルタイムで確認できるようにします。
- ウェブサイトへの移動:
- スクリプトは
page.goto()を使用してBright Dataのウェブサイトに移動します。
- スクリプトは
- XPathによる要素の検索:
- 最初のH2要素: スクリプトは
page.$x('//h2')を使用して最初のh2要素を検索します。その後、そのテキストコンテンツを抽出してログに記録します。 - 特定のクラスを持つ全アンカー要素: スクリプトは
page.$x('//a[@class="specific-class"]')を使用して、class=”specific-class"を持つ全てのアンカー要素 (<a>) を検出します。それらのテキストコンテンツを抽出してログに記録します。
- 最初のH2要素: スクリプトは
- ブラウザの終了:
- 最後に、スクリプトは
browser.close()を使用してブラウザを閉じます。
- 最後に、スクリプトは
クラスによる要素選択のXPath詳細については、こちらのガイドを参照してください。
この手法により、PuppeteerのXPathを活用して複雑なHTML構造内の要素を効果的に操作・インタラクションでき、ウェブスクレイピングや自動化能力が向上します。
20,000+ 人以上のお客様に世界中で信頼されています
Scraping Cloudへようこそ