「jseval」を使用してYouTubeの動画再生数データを取得、スクレイピングするプログラムを書いてみます。
dockerをインストールして、Linux環境下で以下のように実行。
docker run --rm jseval \
--url "https://www.youtube.com/watch?v=kJQP7kiw5Fk" \
--evaluate "$(cat <<- EOT
(async function(){
function waitForElm(selector) { // wait for element
return new Promise(resolve => {
if (document.querySelector(selector)) {
return resolve(document.querySelector(selector));
}
const observer = new MutationObserver(mutations => {
if (document.querySelector(selector)) {
resolve(document.querySelector(selector));
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
}
await waitForElm('#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer');
return JSON.stringify(
document.querySelector('#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer').innerText
)
})();
EOT
)" \
--headless \
--output
なお、この記事は教育目的であり、記事内のプログラムがそれ以外の目的で使用されることを想定していません。