実現したいこと
下記のサイトから<div id="scrollable_content" class="content">タグ内にある<div class="item">タグ内にある情報を全て取得したいと考えています.どのようにしたら所定の内容を取得できるかご教示いただけないでしょうか?よろしくお願いいたします.
前提
下記コードを作成して上記の実現したいことを実現しようとしましたが,うまくいっていません.
GASのライブラリはParserを使っています.
発生している問題・エラーメッセージ
意図した内容が取得できていない.下記コードを走らせると以下の内容しか取得できていないようです.
<div v-for="(data, i) in hourly_data" :class="['item', {'transparent': data.past}]" v-if="typeof(data) === 'object'"> <p :class="['da', getDayClass(data.tm, data.holiday), isDayChange(data.tm)]" v-html="getHourlyDayText(data.tm, i)"></p> <p class="ti" v-html="new Date(data.tm * 1000).getHours()"></p> <p :class="['fc', getStatusClass(data.pain)]"> <img :src="getStatusIcon(data.pain)"> <span class="txt" v-html="getStatusText(data.pain)"></span> </p> <p class="we"> <img v-show="data.wx" :src="'//mwsgvs.weathernews.jp/s/img/telop/' + data.wx + '.png'"> </p> <p class="ap">{{ getNumberText(data.pres) }}</p> </div> <div> </div>
該当のソースコード
1function main(){ 2let response = UrlFetchApp.fetch("https://weathernews.jp/s/pain/city.html?city=13102"); 3 let text = response.getContentText("utf-8"); 4 // console.log(text); 5 6 7 let topic_block = Parser.data(text).from('id="scrollable_content"').to('id="srf_pres_graph_panel"').iterate(); 8 console.log(topic_block[0]); 9 10 11 12console.log("stop") 13 14}
試したこと
cheerioライブラリを使用して同様のことを実現しようとしました.するとコード下に示す内容しか取得できていないです.
function scrapeHtml() {
const url = 'https://weathernews.jp/s/pain/city.html?city=13102';
const response = UrlFetchApp.fetch(url);
const html = response.getContentText();
const $ = Cheerio.load(html);
const content = $('div#scrollable_content.content').html();
console.log(content)
}
コンソールログ
<div v-for="(data,i) in hourly_data" :class="['item',{'transparent':data.past}]" v-if="typeof(data) === 'object'"> <p :class="['da',getDayClass(data.tm, data.holiday),isDayChange(data.tm)]" v-html="getHourlyDayText(data.tm, i)"></p> <p class="ti" v-html="new Date(data.tm*1000).getHours()"></p> <p :class="['fc',getStatusClass(data.pain)]"><img :src="getStatusIcon(data.pain)"> <span class="txt" v-html="getStatusText(data.pain)"></span></p> <p class="we"><img v-show="data.wx" :src="'//mwsgvs.weathernews.jp/s/img/telop/'+data.wx+'.png'"></p> <p class="ap">{{getNumberText(data.pres)}}</p> </div> <div id="srf_pres_graph_panel" class="ws"> <div id="srf_pres_graph" class="graph" width="3000px" height="160px"></div> </div>補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。