💰

晴れる屋2さんのサイトの価格表をスプレッドシートに取り込んだ話

2022/09/17に公開

人気のあるポケモンカードの取り扱いをしている晴れる屋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