2015年9月30日水曜日

CSVダウンロード => googleドライブ保存を定期化する際に気をつけること


こちらの記事の続報です。
CSVをダウンロードしてGoogle Drive に保存する処理をGoogle Apps Script で作ってみた

google apps script は定期的な実行を簡単に行うことができます。

前回作ったスクリプトも毎日実行しておけば自動的にcsvが特定のフォルダに保存されて、データ収集が自動化できます。ここでいくつか失敗したことがあったので、その対処として入れた処理を紹介します。



同じファイルがあったら処理を終わらせる。

ソースコード

  var folderId = '1234567890';
  var file = DriveApp.getFolderById(folderId).getFilesByName(date + '.csv');
  if (file.hasNext()) return;

ileIterator::hasNext()

getFilesByNameがFileIteratorクラスで値を返してきます。
hasNext()でファイルがあれば、既にダウンロード済みなので処理は終了させてます。


CSVが存在しなくてリダイレクトされちゃったら処理を終わらせる

ソースコード


  if(response.getBlob().getContentType()=='text/html') return;

2015年9月28日月曜日

CSVをダウンロードしてGoogle Drive に保存する処理をGoogle Apps Script で作ってみた

googleドライブに貯めておきたいデータをダウンロードするのに、google apps script(GAS)使うと親和性高いから楽かも!と思い作成しました。

今回は株価のCSVを提供しているサイトからCSVをダウンロードしてそのままドライブに保存するまでです。

ソースコード


function getCsvSample() { 
  var folderId = '1234567890';
  var destfolder = DriveApp.getFolderById(folderId);
  var date = "2015-09-25";
  var response = UrlFetchApp.fetch("http://k-db.com/?p=all&download=csv&date=" + date);
  destfolder.createFile(date + '.csv', response.getContentText('Shift_JIS'));
}

変数、クラス、関数の説明


folderId

フォルダを特定するIDです。該当フォルダのURLをコピって来てください
https://drive.google.com/drive/**/**/folders/{ココに記述してある文字列}

DriveApp

googleドライブのファイルやフォルダを操作するクラスです。

UrlFetchApp

よく使うやつ、スクレイピングでお世話になっています。外部サイトへアクセスするときに使います。

getContentText()

今回はここで苦労しました。日本語が文字化けしてしまっている場合は保存や操作をする前に文字コード指定しないといけないです

2015年6月27日土曜日

Google Apps Script 自動で曜日ごとに色を付ける



定期的にデータを貯めこんでいるシートの日付部分をわかりやすくするために
曜日ごとに色を付けられるスクリプトを作りました。

集計メソッドの最後くらいで読んでおけばOK


// 曜日で色を付ける
function setColorWeekend(){

  var range = sheet.getRange("A2:A5");
  var cols = range.getNumColumns();
  var rows = range.getNumRows();
  for (var i = 1; i <= rows; i++) {
    for (var j = 1; j <= cols; j++) {
      var cell = range.getCell(i, j);
      var w = cell.getValue();
      // 0が日曜日/背景を赤に
      if ((w % 7) == 0) {
        cell.setBackground("#FF0000");
      // 6が土曜日/背景を青に
      } else if ((w % 7) == 6) {
        cell.setBackground("#4169E1");
      } else { 
        cell.setBackground("#FFFFFF");
      }
    }
  }
}


2015年6月14日日曜日

GAイベントタグが発行されているか確認する方法

GAのリアルタイムで見る方法もあるけれど、自分のIPからのアクセスは除外していると

検証ができないので確認方法

GAの要素を検証

  

ネットワークタブを開く



Control+Fで__utmを検索

ロードでGA発行している場合は、画面表示後に行えばOK
クリックアクションの時は、ボタンをクリックした時に発行されるのでクリック後に見る

対象のアクションが記載されているURLが存在するかを確認する

例) 0008_expert_message

情報漏えい対策!evernoteの記述にパスワードをかけてセキュアに使う

evernoteを少しでもセキュアに使うための工夫
  • 一番安全なのは「社内のサーバーにおいておく」だけど社外で作業する時や緊急対応ができない。
  • ローカルにパスワード付きで保存しておくのも検索性が悪いしパソコンなくした時のリスク考えたらクラウド上とトントン

目次

  • パスワードを設定する
    • テキスト範囲を指定する
    • 右クリックして「選択したテキスト範囲を暗号化」を選択
    • パスフレーズ入力
    • 選択範囲が秘匿された状態になる
  • パスワードをかけて隠したものを閲覧する
    • パスワードかけた部分で右クリックして「暗号化されたテキストを表示」を選択
    • パスワード入力
    • 表示される

パスワードを設定する

テキスト範囲を指定する



右クリックして「選択したテキスト範囲を暗号化」を選択



パスフレーズ入力



選択範囲が秘匿された状態になる








パスワードをかけて隠したものを閲覧する

パスワードかけた部分で右クリックして「暗号化されたテキストを表示」を選択


パスワード入力


表示される

2015年4月19日日曜日

CentOS7.0でgitをソースからインストールする

前提

CentOS7.0を最小構成でインストール済み
gitの最新版はこちらの左カラムで確認

基本的な流れ

  1. 必要なパッケージをインストール
  2. ソースをダウンロード
  3. インストール

$ sudo yum install curl-devel expat-devel gettext-devel \  openssl-devel zlib-devel
$sudo yum install wget

$cd /usr/local/src
$sudo wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz

2015年4月14日火曜日

php短縮タグが使えない!

いつもphpのタグを <?  ?> で書いているのですが、
CakePHP3.0を試すために先日新しく環境を建てた際に <?php   ?> でしか動かなかったのでメモ

調べてみたら簡単なのですが、php.iniで設定が必要みたいです

$ php -i | grep php.ini

short_open_tag の値をオンにする
$ sudo vi /etc/php.ini
;short_open_tag = Off
short_open_tag = On
参考:PHPマニュアル
http://php.net/manual/ja/ini.core.php