classics.

2018/12/19 Wedflickr

Google Apps Scriptを使ってAmazonの注文履歴をGoogle Spreadsheetsに保存するようにした

capture20181219015231691

Amazonの注文履歴はAPIがないのでMechanizeでスクレイピングして @oquno_shopping に投げているのだけれど、ちょくちょくログインのCAPTCHAに阻まれて辛かったので、手始めにGmailに届いたAmazonの注文履歴をパースしてSpreadsheet(6年前くらいにGoogle Sheetsにリネームされたとかいう話も見るけれどひとまずSpreadsheetsと呼ぶことにする)に保存していくという部分の自動化がざっくりできたので公開してみる。

どうやってるかというと正規表現でゴリ押しなので仕様が変わったら崩壊するけどスクレイピングでCAPTCHA入れなくて済むのならいいかという気持ちです。正直誰か書いてると思ってたけど軽くググった限りではなかったのと、ゴリゴリ正規表現になるので日本版でしか使えないのがあまり汎用性ない。

ということでGoogle Apps Script使うのだるいという人は手動でお試しできるフォームも作ってそこにライブラリのIDとかも書いておいたのでチェックしてくれ。リンク先でGmailとSpreadsheetの操作許可を求められる仕様だけどボタン押すまで特に読み書きしないし自分にはスクリプトが実行されたとかエラーがあったという程度までしか情報はこないので安心できる人は安心していじってください。その他注意等はリンク先に書いた。

https://script.google.com/macros/s/AKfycbyAwCca0txvvHlxQe2Ir-zxCiIHygqgvtMgOztwKC1QbWT6iOr0/exec

その他既知の問題・課題

  • たまに商品名が販売元になってる(正規表現がおかしい?)
  • 注文一覧・発送情報一覧・商品一覧でシートを分けない方がいいのかもしれない
  • 注文一覧も時系列にソートしたいかもしれない
  • HTMLメールじゃないとちゃんと対応していない(ASIN とかはテキストメールに入ってないし仕方ない)

そして今後の展望としては oquno_shopping に投げるのもサクッとそのへんの GAS 用 Twitter ライブラリ使って置き換えて、あと他のショッピングサイトの注文履歴にも対応したい。

2018/05/17 Thuflickr

Google Apps Script をやっていっている

長らく手を出さないでいたYahoo! PipesでiCalを作る代替としてGoogle Apps ScriptでスクレイピングしてGoogle Calendarをつくるというのにようやく着手した。最終的には正規表現でゴリゴリやるのだけど、ある程度自分用ライブラリもできて量産体制に入っている。

https://scrapbox.io/oquno/Google_Apps_Script%E3%81%A7%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%97Google_Calendar%E3%82%92%E4%BD%9C%E3%82%8B

↑にノウハウと作ったカレンダーをまとめている。ライブスケジュール以外にも出町座の上映スケジュールなんかもGoogle Calendar化したりしてるのでふと出先で映画見たくなっても何やってるかすぐわかって便利。

2017/08/12 Satflickr

ブログの新着を投稿するTwitterアカウント作った

主にSEOのため実験的に。ポリシーとしては、人間が投稿するアカウントと分けるというのと、Twitter Cards対応してるのでURLだけ投げてタイトルをわざわざ投稿しない。前者は、特に興味のない人に読ませたくて書いてるわけではないというのと、個人の感想として人間の書いてるアカウントにごちゃごちゃ別の投稿が混ざってるのが嫌いなので。後者はTwitter検索とかまで含めてSEOしたいとなると含めた方がいいのだろうけれどクロールさせるのが主な目的なので別にいいというのと、TwitterのUXとしてTwitter Cardsが提供されてるのに再度タイトルを書くのは知性がないという考えによるもの。あと最近ゴミスクリプトをあんま書いてないのでリハビリの手始めとしてというのと、livedoor Readerがついに終わってしまうので一応RSS以外のチャンネルも用意するかという気持ちもある。

2016/08/15 Monflickr

HerokuにデプロイするWebアプリを作りたいメモ

技術的には大したことなくて、大して使われないはずなのでHerokuの無料枠にでも置くかなという感じのWebアプリを作りたくなっているのでそのための事前準備メモ。Heroku使ったこと無いので。

  • Rails前いじったりしていけそうな気がするのでRailsでやる
  • 手元に仮想環境作ったりめんどいので開発作業はさくらVPSでやる
  • TODO: Herokuで使えるRubyとRailsとかのバージョン確認する
  • TODO: 何かあった時のためにHeroku脱出手順も確認
  • DB は無料枠で使えるのがあるらしいので確認

2016/04/26 Tueflickr

Google Latitude の Badge の代わりに Public Location Badge が便利

Google Latitude が終了して3年くらいだけれど現在地を Web API 的に取得できる方法が未だになくて Twitter IRC Gateway からの投稿に現在地の位置情報を付加する機能を停止していた昨今だけれど、Public Location Badge という代替になりそうなのを見つけたので復活させることができた。

http://www.publicbadge.com/

仕組みは Google Latitude と同じで、Android 端末にアプリをインストールして ID を取得したら専用のページを Web Badge として iframe で埋め込んで使えるというもの。JSON をロードしてるのも同じなので、エンドポイントだけ変えれば前のコードがそのまま使える。動かなければ更新間隔も調整してくれてるっぽいのでそんな激しく電池が減ることもなさそう。

ちなみに Google Maps の Timeline から KML を取得するとかも試してはみたのだけれど、キャッシュが効きすぎているのかせいぜい数時間前とかしか取れなくて諦めた。Google Latitude の現在地共有機能は Google+ で使えるし、履歴は Google Maps の Timeline が便利なので、とりあえず Google Latitude が終わって困っていたことはなくなったはず。

2016/04/26 Tueflickr

適当に apt-get upgrade してたら CPAN モジュール再インストールする羽目になったのでメモ

Perlはtiarraとこのブログしか使ってないのだけど、いつの間にかPerlのバージョンが上がってたのかなんかおかしくなっててCPANモジュール再インストールしたのでメモ。もしかしたらまだ足りないかもしれないけど…。

  • Serene Bach
    • Jcode
    • LWP::UserAgent
    • XML::Atom
  • tiarra関係
    • JSON
    • Crypt::SSLeay

2015/07/20 Monflickr

gem で taglib2 を入れるのに失敗する

自宅オーディオプレーヤーの復活を大分先延ばしにしていたので再度着手している…。taglib2 入れようとしたら native extension どうこうでこけたので、その対処をメモ。

$ sudo apt-get install libtagc0-dev

したら普通にいけました。参考 http://stackoverflow.com/q/28418864

2015/06/13 Satflickr

Amazon のログインリンクが変わった気がするので Mechanize で対応したメモ

agent.page.link_with(:text => "サインイン")

で動いていたのだけれど動かなくなっていたので

agent.page.link_with(:text => /サインイン/)

にしたら動くようになった。なんかJSで頑張るように更新されてる気がする。

2015/04/21 Tueflickr

mongo gem を 1.12.0 から 2.0.2 に上げた際にはまったこと

リハビリとして sinatra アプリでも書こうと思って Ruby を 2.2.2 に上げたり gem 入れなおしたりしてたら mongo gem ではまって、find_one メソッドが消滅していた。

2014/12/05 Friflickr

日記

衆院選の選挙期間にも入ったということで、意識の高さを発揮し、議論を深めるために選挙カーAAとそのジェネレーターを作った(元はワゴン車AA)。久しぶりにJavaScript書いてちょっと疲れた。あと、AAの作り方に関する知見が深まった。

http://oq.la/senkyo_car/