💰
晴れる屋2さんのサイトの価格表をスプレッドシートに取り込んだ話
人気のあるポケモンカードの取り扱いをしている晴れる屋2さんのサイトなんですが、
価格一覧はあっても、ソート機能などが無かったので、
表があって機能が無いなら自分で作ってしまえとなった。
勢いで書いたので非常に雑。
function myFunction() {
const regex = /cell">(.*)<\/div><div class="table_right_cell">(.*?)<\/div>/gm;
var str ="";
var response = UrlFetchApp.fetch("https://www.hareruya2.com/page/17").getContentText()
str = response;
let cardNames = [];
let cardPrices = [];
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
// console.log(`Found match, group ${groupIndex}: ${match}`);
if(groupIndex == 1){
//カード名等
cardNames.push(match);
}
if(groupIndex == 2){
//値段
cardPrices.push(match);
}
});
}
// console.log(`cardNames: ${cardNames.length} cardPrices: ${cardPrices.length}`)
let list = [];
for(var i=0;i<cardNames.length;i++){
list.push([cardNames[i],cardPrices[i]]);
}
// console.log(list);
const spsh = SpreadsheetApp.getActiveSheet().getRange(3,2,cardNames.length,2);
spsh.setValues(list);
}
実行すると
カード情報と価格を持ってくるので、
REGEXEXTRACT関数などを使ってレアとか種別とかを抜き出すと、
下のような表が完成する。
別サン&ムーンも同じ構成だったのでURLの箇所さえ変更すれば取得できた。
これで結構見やすくなる。
Discussion