以下のようなhtmlを対象としてpuppeteerでスクレイピングをするとします。
<div class="item" id="row1"></div> <div class="item" id="row2"></div> <div class="item" id="row3"></div> <div class="item" id="row4"></div>
まず、以下のようにdivを取り出します
let list = await page.$$('div.item');
ここまでは前提として必須です。
その上でlistを回しつつdivからIDを取り出したい時以下のようになるかと思います。
for (div of list) { console.log(await div.$eval('[selector]', item => item.id)); }
子要素であれば[selector]
の部分にシンプルに子要素のセレクタを入れれば良いのですが上記のように自分自身が対象の場合、[selector]
にどのような指定をすれば良いでしょうか。
ちなみに上記でidを取得するには例えば以下のようにすれば可能です。
for (div of list) { console.log(await (await div.getProperty('id')).jsonValue()); }
他にも最初にdiv配列を取得する際にidを取るなど方法は有ります。が、あくまで「自分自身を示すセレクタ」が存在するのかが知りたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/30 02:24
2019/11/30 02:49