エンジニアリング

RedShiftのGEOMETRY型を使って緯度経度から都道府県を判定してみる

最近TwitterでJTCの内情のツイートばかりをしていて、技術的な発信をおろそかにしていました…。反省です。 ということで、久々のブログ投稿です。 仕事上よく緯度・経度を持つ空間データの分析をするのですが、毎回DWH(AWS RedShift)からPython実行環境にロードし、GeoPandasやShapelyを使って処理していました。 ただ、結局Pythonで処理した結果をまたD […]

RabbitMQ Dockerコンテナでメッセージを永続化する方法

プライベートな開発で複数のDockerコンテナで並列処理を実装する必要があり、複数コンテナのタスクを管理するためにRabbitMQというOSSのメッセージブローカーを使い始めました。 RabbitMQのデフォルト設定だと、サーバーが停止したりクラッシュするとサーバー上のキューやタスクは削除されてしまいます。 さすがに運用する場合はこの仕様だと困るので、RabbitMQサーバー上のメッセージを永続化 […]

Torで接続元を匿名化してスクレイピングしてみる

Torネットワークを使うことで接続元IPアドレスを秘匿化してWebスクレイピングできるかを検証してみました。 Webサイトをスクレイピングする際、同じIPアドレスからリクエストし続けると運営側からアカウントをBANされるリスクがあります。 処理途中でランダムに待機を入れて人が操作するかのよう振る舞ったとしても、同一の接続元からリクエストすることに変わりはないためBANを回避する方法として不十分です […]

selenium Dockerイメージを使ってPairsで足跡を自動で付けてみた

最近Webやネイティブアプリのスクレイピングに興味があります。 実際にスクレイピングアプリを作りながら学んでいこうということで、手始めにPairsを題材にコードを書いてみました。 ※Pairsは週に数回閲覧するかどうかくらいのライトユーザーです スクレイピング実行環境をDockerを使って構築したり、SNSでの2段階認証の突破やLazy Loadを実装しているページの対応などが個人的には新鮮な技術 […]

Azure Container InstanceをLogic Appsでスケジューリングする方法

最近Windows OSやAzureを触り始めました。 もともとLinuxやMacだったり、クラウドであればGCPやAWSを利用して開発していたのでなかなか慣れず、四苦八苦している今日この頃です。 さて、今回はAzureでDockerコンテナを定期実行する方法を紹介します。 クラウドでのDockerコンテナの定期実行は、AWSならCloud Watch、GCPならCloud Schedulerでノ […]

PythonではてなブログのSNSリアクション数を取得する方法

今回は、はてなブログの投稿ページに表示されている、投稿記事に対するfacebookやはてな経由でのユーザーのリアクション数をPythonで自動で取得し、その取得結果をGoogleスプレッドシートに出力する方法を紹介します。 ちなみに、facebookやはてな経由でのユーザーのリアクション数はボタンに表示されている数字で確認できます。 確認したい記事が少なければ都度ボタンに表示されている数字で確認し […]