13
results
for python
-
https://wp.suwa3.me/2019/12/28/pixela%e3%81%a8%e3%81%84%e3%81%86%e8%8d%89api%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e3%80%81wordpress%e3%81%aepv%e6%95%b0%e3%82%92github%e9%a2%a8%e3%81%ab-2/ Pixela × GA cronの中身が置いてあるGitHubリポジトリです。 こちらのcronがうまく実行できていなかったので まずは手動で実行してみて 何のerrorが出るかを確認して対処しました。 日付を指定して実行 日付を指定して実行するには コメントのように書き直します。 参照: datetime — 基本的な日付型および時間型 — Python 3.8.2 ドキュメント def main(): analytics = initialize_analyticsreporting() yesterday = date.today() - datetime.timedelta(days=1) # yesterday = datetime.date(2020, 2, 24) # 日付を指定して実行する場合 response = get_report(analytics, yesterday) 手動実行してerrorの確認 サーバーにログイン後 登録されているcron一覧を表示します。 # crontab -l 0 2 * * * cd /opt/wp-pixela && python3 google_analytics_access.py 試しに手で実行してみました。 # cd /opt/wp-pixela && python3 google_analytics_access.py -bash: python3: command not found errorの原因 python3が無いっぽい。python Created
Fri, 20 Mar 2020 13:00:00 +0000 -
今日は大事大事な基礎って部分をやったと思うので備忘録です。 このblogの続き作業です。 https://wp.suwa3.me/2020/03/04/%e3%80%8c%e3%81%93%e3%82%8c%e3%81%8c%e7%84%a1%e3%81%84%e3%81%a8%e5%8b%95%e3%81%8b%e3%81%aa%e3%81%84%e3%80%8d%e7%b3%bb/ from datetime import date してきて、date関数を使えるようにしたら 自分のほしい形式になるように整形して 出力されるものが文字列なのか数値なのかを考えて代入する。 datetime — 基本的な日付型および時間型 — Python 3.8.2 ドキュメント from datetime import date (略) def get_report(analytics, date_): (略) return analytics.reports().batchGet( body={ 'reportRequests': [ { 'viewId': VIEW_ID, 'dateRanges': [{'startDate': date_.strftime("%Y-%m-%d"), 'endDate': date_.strftime("%Y-%m-%d")}], 'metrics': [{'expression': 'ga:sessions'}], 'dimensions': [{'name': 'ga:country'}] }] } ).execute() (略) def main(): analytics = initialize_analyticsreporting() yesterday = date(2020, 3, 9) - datetime.timedelta(days=1) response = get_report(analytics, yesterday) data = { "date": yesterday.strftime("%Y%m%d"), "quantity": response["reports"][0]["data"]["totals"][0]["values"][0], } 使う関数は、その都度公式リファレンスで使い方の詳細を確認する。python Created
Fri, 06 Mar 2020 13:00:00 +0000 -
今日は少しだけ.pyを触ったので備忘録です。 GitHub https://github.com/Ishizuka427/wp-pixela 経緯 サイドバーにあるGitHubの草風PV表示ですが PixelaというAPIで提供されているサービスと、Google Analytics APIを連携させているの。そこの連携部分をPythonで書いています。 諸々の方法などは下記の記事にまとめてあるので、気になった方は読んでください。 https://wp.suwa3.me/2019/12/28/pixela%e3%81%a8%e3%81%84%e3%81%86%e8%8d%89api%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e3%80%81wordpress%e3%81%aepv%e6%95%b0%e3%82%92github%e9%a2%a8%e3%81%ab-2/ EC2上でSNS運用していて、そこのインスタンスでcron実行させていたのだけれども サーバーの引っ越しなどしていたらcronの存在をすっかり忘れていて、草を生やし忘れていたの。 **そもそも1日1回のジョブならLambdaで良いのでは? **って感じなので、移行作業をしようと思って その準備として 「とりあえずローカルで実行させてみよう」 と、作業したら依存パッケージ絡みで躓いたので書き記します。 _人人人人人人人人人人人人人人人人人_ > 今回Lambdaの話は出てきません <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ PypI Pythonのサードパーティパッケージ https://pypi.org/ $ pip install <パッケージ名> でインストールできます。 環境変数を.envにまとめて.pyに読み込ませて実行させていたのですが その際に使うモジュールを検索していて dotenv かなぁ。と思ってインストールしたら違いました。 $ pip install dotenv すると、長いerrorを吐かれます。 py-dotenv や dotenv-python などもそれっぽいですが、実はひっかけです。 最終Releaseが 3年前 とかです。 正解は python-dotenv です! **こんなんわかるか! **って気持ちになったので、そのモチベーションだけでblogを書きました。 dotenv , python などでググれば出てくるといえば出てくるので ググり方がカスなだけでしたが、ここに備忘録として残します。 こういった「これが無いと動かない」系は、GitHubのREADME.mdに忘れずに書いておこうと思いました。python Created
Wed, 04 Mar 2020 13:00:00 +0000 -
経緯 今週の水曜日にJAWS-UG 初心者支部#23 次回のハンズオン勉強会向けのチューター向け予習会へ参加することになりました。 Lambdaは、花屋時代にローカル環境でテスト実行してみてQiitaに上げたきりだったので その時の記事 => Pythonでaws-sam-cliをローカル実行するまで もうすこし踏み込んで (実用性を意識しながらLambdaを触ってみたいなぁ) と、思った&予習も兼ねて 『API GatewayをエンドポイントにしてLambdaを起動しSlackに何かを流す』 というのをやってみました。 API Gatewayをエンドポイントにした実行を試したいと考えた理由として 外部から連携したい場合、HTTPリクエストを受けて発火させる場面が多くあるので これから効率化を考える際に、よく使いそうな手法として要領を掴んで慣れておきたかったからです。 逆にAPI Gatewayを使わないパターンとして AWS内のサービスを使うときは、わざわざエンドポイントを外に置かなくても AWSのサービス同士はだいたいIAMロールを使えばAWS内でセキュアに連携できます。 流れ 流れとしては SlackでIncoming Webhookの設定をしてWebhook URLを控えます。 Lambdaのコンソール上で関数を作成して Webhook URLをその関数内で使用し、連携させます。 API Gatewayのコンソール上でLambda関数を紐付けて エンドポイントをデプロイすると、発火用のURLが発行されます。 そのURLにアクセスする(HTTPリクエストが届く)と それを合図にしてLambdaが起動して SlackのBotが起動する、という仕組みです。 Slack 1. Incoming Webhookの設定 2. Webhook URLを控える Lambda 1. 関数の作成 2. 関数内にWebhook URLを仕込む API Gateway 1. Lambda関数の紐付け 2. エンドポイントをデプロイして発火用URLを控える (例えば)ブラウザなど エンドポイントURLにアクセスしてみる Slack Botが起動する Slack Incoming Webhookの設定 まずはSlackの設定です。 『Slackをカスタマイズ』を選択します。 左上の『MENU』から 『App 管理』を選択します。
-
Slackの自動化はとりあえず最後までいきました。 PythonやXPathなど勉強になってよかったです。 クローラ作成に必須!XPATHの記法まとめ - Qiita 作ったものは隠すところを環境変数化してGitHubにupしました。 selenium-slack - github あとはREADME.mdなどまとめたいです。 自動化で、手こずるなぁと感じたのが CSSのidで指定できないときにXPathでの指定で、 まぁまぁややこしいなと感じた。 あとは直接入力なのか、クリック入力なのか 細かな差でコードがかなり変わるので 実際に手で操作方法を念入りに確認しながら進めるのが近道だなと感じました。 今回はデバッガーがとても役立った。 import pdb #pdbをインポート pdb.set_trace() #止めたい位置に挟む 本当にのんびりとした歩みだけれども 少しずつ出来ることが増えていくの嬉しい。python Created
Mon, 20 Jan 2020 13:00:00 +0000