Puppeteerでaタグのhrefを取得する(セレクタ、XPath)

公開日:  

nodejs puppeteer


Puppeteer で a タグの href 属性の値を取得する方法です。
セレクタを使う方法と XPath を使う方法について書きます。

環境

  • Node.js v12.18.1
  • puppeteer v4.0.1

セレクタを使った取得方法

複数の a タグから取得する。

const hrefs = await page.$$eval("a.link", (list) => list.map((elm) => elm.href));
// → <Array<string>>

一つの a タグから取得する。

const href = await page.$eval("a.link", (elm) => elm.href);
// → <string>

XPath を使った取得方法

複数の a タグから取得する。

const hrefs = await Promise.all((await page.$x('//a[@class="link"]')).map(async item => await (await item.getProperty('href')).jsonValue());
// → <Array<string>>

参考

以下、公式ドキュメントです。



関連記事