Life is Like a Boat

忘備録や投資日記、プログラミングに関するメモやtipsなど

SBIのポートフォリオから銘柄名と前日比をスクレイピングするスニペット

まずコードから

Array.from(document.querySelectorAll('div.middleAreaM2 table:nth-of-type(4) > tbody > tr:nth-of-type(2) table tr')).filter((e, idx) => {
    return idx != 0
}).map((e) => {
    return Array.from(e.querySelectorAll('td')).filter((e, idx) => {
        return idx == 1 || idx == 7
    })
}).map((e) => {
    return e.map((e) => {
        return e.textContent
    })
}).map((e) => {
    return e[0] + '(' + e[1] + '%)'
}).join('\n')

結果はこんな感じ。

5301 東海カーボ(-5.78%)
4004 昭電工(-5.58%)
5310 東洋炭素(-5.22%)
5304 SECカーボン (-4.98%)
5302 日本カーボ(-4.15%)

実行するにはSBI証券にアクセスして、

  • SafariだとDevelop -> Web Inspector
  • ChromeだとView -> Developer -> Developer Tools

でコンソールを立ち上げ、上記のコードをコピペして実行できます。

f:id:nerimplo:20181011112303p:plain

map, filter, reduceの高階関数を使うと、色々捗ること多いので、使い方忘れないように頭の体操がてら定期的に復習してます。

書き慣れてないと途中でなにやってるかわからないと思います。

参考Qiita
配列の要素に対する処理には繰り返し構文よりも高階関数を使ってみよう

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

  • 作者: Ethan Brown,武舎広幸,武舎るみ
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/01/20
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)