自動化厨のプログラミングメモブログ│CODE-LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Chatworkの投稿内容をGoogleスプレッドシートに自動で反映させる

qiita.com

思いの外簡単そうだったのでこれをやってみる。

用意するもの

  • Googleスプレッドシート
  • Chatwork

ざっくり手順

  1. スプレッドシート作成
  2. スクリプトエディタでdoPostとJSONパーサを記述
  3. スクリプトAPI公開
  4. ChatworkでWebhookを作成してスクリプトのURLを指定
続きを読む

CSVファイルの数字と日付データからのみダブルクォートを削除するsedコマンド

sedコマンドええやん!

メモっとかないと絶対忘れるので記録。

# 整数と浮動小数点数のダブルクォーテーションだけを削除するsedコマンド
echo -e "\"id\",\"item\",\"price\",\"taxrate\",\"total\"\n"\
"\"0001\",\"apple\",\"1000\",\"1.08\",\"1080\"\n"\
| sed -e 's/\"\([0-9|.]*\?\)\"/\1/g'
 

# テキストファイルに対して実行する場合
# sed -i 's/\"\([0-9|.]*\?\)\"/\1/g' data.csv
 
# 日付データのダブルクォーテーションだけを削除するsedコマンド
echo "\"2019/07/29\",\"2019/7/9\",\"2019年7月29日\""
echo "\"2019/07/29\",\"2019/7/9\",\"2019年7月29日\"" | sed -e 's/\"\([0-9]\{4\}\/[0-9]\{1,2\}\/[0-9]\{1,2\}\)\"/\1/g'
 
# テキストファイルに対して実行する場合
# sed -i 's/\"\([0-9]\{4\}\/[0-9]\{1,2\}\/[0-9]\{1,2\}\)\"/\1/g' data.csv
 

念の為、実利用する前にhttps://paiza.io とかで実際の動作を見てみてください。

【VBA/VBScript】HTML特殊文字コードから16進数を抽出→10進数に変換してデコードする

CSV形式でダウンロードしたデータの一部が文字化けしていて困ってるという相談を受けて、「読み込み時のエンコード指定の問題でしょw」と見てみると部分的にHTMLエンコードされている謎のCSV・・・。

これに対応すべく部分的なHTMLエンコード文字をデコードして置換するスクリプトを作ってみました。

いろいろ調べてもHTMLエンコードかと思いきやURLエンコードの記事だったりして目標にたどり着くのにちょっと時間がかかってしまいましたが以下を発見。

[VBA] htmlデコード関数 | n218.info

シンプルで分かりやすく、これだ!と思ったけどそのままでは使えなかったの修正して使わせていただきました。

 

この記事で紹介している内容

  • テストのような数値文字参照のHTMLエンコードされた文字列をデコード
  • 文字列の中から変換対象を探し出してデコード後の文字列に置換する関数
  • ドラッグアンドドロップでCSVファイル内のHTMLエンコード文字列をデコードして置換するVBS

 

続きを読む

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる④ ~2ページ目以降も取得する~

第三回では複数キーワードを順番に検索してExcelシートにキーワード、検索順位、ページタイトルを入力するところまでできました。

code-life.hatenablog.com

今回は検索結果一番下にある「次へ」を押していく機能です。 これが実装できれば1キーワード100位までとか取得できるようになりますね。

  • 前回までのおさらい
  • 2ページ目以降の取得に対応する
    • まず基準となる取得件数を変数に用意
    • data_inputプロシージャで取得した件数をカウントする
    • 受け側として引数を追加
      • For文の中にカウンターを記述
    • End Subの直前に条件文を記述
    • 次へ をクリックさせる
    • Call data_inputの引数に取得件数上限を追加
  • ディスクリプションが無い場合に対応する
    • 要素の有無を判別する
  • まとめ

一回目と二回目

code-life.hatenablog.com

code-life.hatenablog.com

続きを読む

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる③ ~複数キーワードの検索とデータ取得~

第二回では1キーワードを検索してExcelシートにキーワード、検索順位、ページタイトルを入力するところまでできました。

code-life.hatenablog.com

code-life.hatenablog.com

今回やっていくのは以下の内容。ここまでできれば検索結果のスクレイピングとしては十分な機能かな。

  • リンクURL、ディスクリプション
  • 複数のキーワードを検索
  • 2ページ目や3ページ目の結果も取得
続きを読む