世界震撼.dev

いつか世界を驚かせるためのメモ

parseTable.jsとかいう神ライブラリ

parseTable.js - convert HTML table to array of objects · GitHub

最近テーブルをパースするのがだるくてなんかいい方法ないかなと探し回っていたところぴったりのライブラリを見つけた

console.log(JSON.stringify(parseTable(document.querySelector("table")).reverse(),null,"    "));

で出力すれば1行でテーブルをJSONに変換できる

あとはファイルに書き込んでjavaでゴニョゴニョすると

factoryメソッドを少し書き換えればいい感じになる

function factory(headings) {
  return function(row) {
    return arrayify(row.cells).reduce(function(prev, curr, i) {
            // 変更部分 セルの中のhrefからURLを取得できるように変更
        if( curr.childElementCount != 0 ){
            prev[headings[i]] = [ { "name" : curr.getElementsByTagName("a")[0].innerText , "link" : curr.getElementsByTagName("a")[0].href } ];
        }else{
            // 変更前
            prev[headings[i]] = curr.innerText;
        }
      return prev;
    }, {});
  }
}