実現したいこと
GoogleFinanceで日本株の情報をGASでスクレイピングをトライ中です。
(GoogleFinanceはスクレイピングを許可しているサイトと認識しています)
例えばトヨタ自動車(コード:7203)を表示すると当日のデータや財務諸表(損益計算書・貸借対照表・キャッシュフロー)が
閲覧できます。画面には「四半期」と「年間」ボタンがありますが、取得できない「年間」分を取得できるようにしたい。
「年間」分を取得できる方法をご教示・アドバイスを願えればと思います。
トヨタ自動車
発生している問題・分からないこと
現状:GASでCheerioライブラリを使用して、URLデータから「四半期」データは取得できる見込ですが、「年間」分が取得できません。
「年間」ボタンをクリックして画面を確認しながらでも「四半期」データしか取得できません。
動的サイトではGASでは取得できないと聞き、PhantomJsCloudライブラリを使用してみましたが、やはり「年間」データは取得できません。
(ただし、手動でHTML文をドキュメントにコピペすると「年間」データを見ることができます。自動では取得できない?)
実際には、「四半期」と「年間」を切り替える操作もGASではできていないので、これも次の問題ですが、
画面上では見えて、手動コピペでは年間データも見えるので、先にこれができてからかと思います。
GASもスクレイピングも初心者で、やっていることが完全には理解できていませんが、実現できるアドバイスをいただければと思います。
参考にさせていただいたサイト:
PhantomJsCloud
Cheerio
Gas スクレイピング
該当のソースコード
1function get_GoogleFinance_Scraping() { 2 3 const url = 'https://www.google.com/finance/quote/7203:TYO?hl=ja';//目的のURL 4 5 //PhantomJsCloud用の独自関数で動的なWebページのHTMLデータを取得する 6 //const html = phantomJSCloudScraping(url);//PhantomJsCloudで読み込む 7 8 const html = UrlFetchApp.fetch(url).getContentText('UTF-8'); 9 //console.log('html.length=',html.length); 10 11 //Cheerioライブラリ利用 12 const $ = Cheerio.load(html); 13 14 //損益計算書・貸借対照表・キャッシュフローのデータ抽出 15 let $div = $('td.QXDnM');//データ 16 let values = []; 17 $div.each((index, element) => { 18 values.push($(element).text()) 19 }); 20 console.log('values.length=',values.length,'/values=',values);//データをログ出力 21 22}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
四半期データは取得できますが、年間データは取得できません。
補足

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/06/24 02:31
2024/06/24 02:48
2024/06/24 03:34