GASでyahoo!天気から天気の画像、天気予報、最高気温、最低気温を取得し、スプレッドシートに書き出したいです。

実現したいこと

GASでyahoo!天気から天気の画像、天気予報、最高気温、最低気温を取得し、スプレッドシートに書き出したいです。
対象リンク:
https://weather.yahoo.co.jp/weather/jp/13/4410.html#week
書き出し先:B2:I5
8日分を横並びで、行は上から天気画像・天気予報・最高気温・最低気温です。

発生している問題・分からないこと

こちらのリンクから取得していますが、最高気温・最低気温の取得がうまくできません。
yahoo!天気は、「今日」と「明日」の天気は別な表になっており、連続で8日分を処理するのに具体的な、htmlの指定方法がわからずいます。

該当のソースコード

GAS

12function weatherReport1() { 3 4 //シートの指定 5 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 6 7 //ソースを取得しテキスト化 8 var data = UrlFetchApp.fetch('https://weather.yahoo.co.jp/weather/jp/13/4410.html#week').getContentText(); 9 10 //スキップキーワード設定(4つめ以降は同じなので fill を使い省略) 11 var skipWord = ['今日・明日の予報','<ul class="temp">','<small>天気</small>',,,,,,].fill('</small>',3); 12 13 //2行8列の配列を宣言※ 14 for(var arr=[]; arr.length<2;) arr.push(Array(8)); 15 16 //TextPickerにテキスト化したソースを格納 17 TextPicker.open(data); 18 19 //8日分繰り返し 20 for(var i=0; i<8; i++){ 21 22 //スキップキーワードまでスキップ 23 TextPicker.skipTo(skipWord[i]); 24 25 //アイコンのURL取得 26 var imgUrl = TextPicker.pickUp('<img src="','" border'); 27 28 //URLからセル埋め込み画像を取得し配列へ格納 29 arr[0][i] = SpreadsheetApp.newCellImage().setSourceUrl(imgUrl).build(); 30 31 //予報を取得し配列へ格納 32 arr[1][i] = TextPicker.pickUp('alt="','">'); 33 } 34 //配列をスプレッドシートへ書き出し 35 sheet.getRange(2,2,2,8).setValues(arr); 36} 37

試したこと・調べたこと

上記の詳細・結果

GASで天気を取得する方法を掲載している記事は見つけられましたが、気温に関する記載部分をhtmlからどのように取得すべきかがわからず、こちらで質問しています。

補足

GAS初心者で、基礎的な質問になるかもしれませんが、ご教示いただけますと幸いです。

コメントを投稿

0 コメント