銀行をスクレイピングする
最近、UFJ銀行スクレイプするの流行りみたいなので、スクレイピングモジュール出したし、乗らないわけにいかなかった。
元ネタはこれ
(ns web.scraper.sample.ufj (:require [web.scraper :refer :all] [clojure.pprint :as pp])) (defn login [] (let [client (default-mode! (make-client browser-chrome)) form (get-form-by-name (get-page client "https://entry11.bk.mufg.jp/ibg/dfw/APLIN/loginib/login?_TRANID=AA000_001") "MainForm")] (let [submit (get-elem-from-nodelist-by-index (get-elements-by-tag-name form "a") 5) id (get-input-by-name form "KEIYAKU_NO") pass (get-input-by-name form "PASSWORD")] (input-form id (str (System/getenv "UFJ_ID"))) (input-form pass (str (System/getenv "UFJ_PASS"))) (click submit)))) (def logined (login)) (defn account [] (-> (page->enlive logined) (select-text-node [:div#account :div.situation :table.situation_data :tbody :tr :td.number :p#setAmountDisplay]) (as-> x (map clojure.string/trim x) (pp/pprint x))))
CIDER replで試す場合はrepl上げる前にemacsのsetenvで環境変数設定してね。 というか自分のモジュールで他にもあれやこれやスクレイプしてる。 APIあればいいのに。