テーブルのデータをスクレイピングする


jQueryのテーブル関係の練習
以下coffee、表現はEmmet

テーブルヘッダーを取ってスキーマを作る

tables = $(「目的のテーブル、もしくは目的のテーブルを含む配列」)[0]

初期状態:table>thead(>th>td)+tbody(>tr*100)

process01 = tables.rows

(tr>td*5)*100

tableの中の配列を得るのがrows
theadもtr>tdに変換されたようになって、すべてrowsとして扱えるようになる

process02 = tables.rows[0]

tr>td*5

process03 = tables.rows[0].cells

[td*5]

trの中のtd配列を取るのがcells

_.each process03, (cell, index) -> console.log $(cell).html()

ヘッダーが順番に出てくる

うむ、取れそう

データ取得

これでスキーマに定義したものでデータをとっていく

_.each tables.rows, (row, rIndex) ->
    if rIndex is 0 then return
    _.each row.cells, (cell, cIndex) ->
        console.log "(" + cIndex + ", " + rIndex + ") = " + $(cell).html()

インデックスをスキーマに対応させれば保存できますね。