前提・実現したいこと
node.jsにて、cheerio-httpcliを用いてwebスクレイピングを行っています。
今までは下記ソースコードで問題なく実用できていたのですが、ページを読み込んだあとにすぐにページ内容を返すため、最初に読み込んでから時間差で表示される要素がある場合に上手く読み込めません。
例:https://baseball.sports.smt.docomo.ne.jp/result/games/live_2020101902.htmlの<span id="pitching_chart_icon_1" class="straight strike" style="top: 27.2%; right: 48%; display: block;">1</span>の部分(配球チャート)
ヘッドレスブラウザを使わない手法が好ましいのですが、うまく取得する方法はありませんでしょうか?
該当のソースコード
node.js
1var client = require('cheerio-httpcli'); 2async function gethtml(url){ 3 return new Promise(function (resolve) { 4 client.fetch(url, {}, function (err, $, res, body) { 5 resolve($); 6 }); 7 }) 8} 9const geturl = "https://baseball.sports.smt.docomo.ne.jp/result/games/live_2020101902.html" 10gethtml(geturl).then(html => { 11 console.log(html("#pitching_chart_icon")) 12 console.log(html("#pitching_chart_icon_1"))//ここが0になる 13})
試したこと
公式のドキュメントを一通り目を通しましたが、該当するオプションなどは見当たりませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。