Python Charity Talks in Japan
2021/09/11 nikkie
@skip
)Python歴もうじき4年。株式会社ユーザベースのデータサイエンティスト(NLPer)
Start Python Club(みんなのPython勉強会) 4代目LT王子、スタッフ
最近エモかったPEP:Inadaさんによる PEP597
import PythonConference as
PyConPythonについてのカンファレンス(国際会議)
https://pyconjp.connpass.com/event/221241/ (申込250名(50%)超え🎉)
早期購入特典🍕、まだ間に合う!🇲🇬
@skip
)9月末まで、サポートスタッフを募集中 Help, please!🙏
@pyconjapan や PyCon JP Blog で発信しています。フォローしてもらえると嬉しいです😃
スタッフmtgの参加者管理に利用
ブラウザ操作自動化 ライブラリ
Seleniumのラッパーで、 非常に簡単に書ける!💫(次へ⏬)
https://github.com/mherrmann/selenium-python-helium (2600 star)
from helium import *
start_chrome("google.com") # 1. Chrome立ち上げ、「helium」についてGoogle検索
write("helium selenium github")
press(ENTER)
click("mherrmann/helium") # 検索結果の中からクリック
go_to("github.com/login") # 2. 別の例:GitHubにログイン
write("username", into="Username")
write("password", into="Password")
click("Sign in")
kill_browser() # Chrome終了
https://github.com/mherrmann/selenium-python-helium/blob/master/docs/cheatsheet.md
ブラウザのシークレットウィンドウ立ち上げ
スタッフ共通アカウントを確認し、ログイン(👈これが毎回面倒でした)
既存のイベントの「コピーを作成」
スタッフ共通アカウントでconnpassにログイン
指定した既存のイベントの「コピーを作成」押下(確認ポップアップを出す)
「指定したイベントのコピー」「参加者情報CSVのダウンロード」現在サポート
詳しくはAppendixへ
その後に pycon_shizu や pyconk もありますね😊
ご清聴ありがとうございました
Appendix が続きます(よろしければどうぞ!)
Heliumチートシート
PyCon JP 2021スタッフが開催したイベントの集計
Future Works
LTへのフィードバック
もともと https://github.com/ftnext/python-as-pyconjp-staff/tree/master/mtg_secretary/connpass で自動化していた
今回のLTを機に 共通化できる部分を切り出した(パッケージ化したい)
スクリプトの見た目かっこよくしたくて、connpass-ops-playbook作成(開発中!)
#pyhack の成果物はこんな感じになりましたhttps://t.co/Di3uFSfUE2
— nikkie 📣PyCon JP 2021 スタッフ募集中! (@ftnext) August 21, 2021
操作するブラウザの指定や、ログイン操作の部分がデコレータで書けたのが、気に入っています♬
@ using_firefox
@ logged_in
def show_copy_popup(url):
...
9/11 #pycharity をお楽しみに! https://t.co/7r9vyhnsJH
from connpass_ops_playbook.decorators import logged_in, using_firefox
from connpass_ops_playbook.plays import copy_existing_event
@using_firefox
@logged_in
def show_copy_popup(url):
copy_existing_event(url, human_confirms=True)
ポップアップ操作も自動化できます
デモが確認ポップアップを出すまでだったのは、LT練習で不要なイベントを作らないようにするためです
デモのスクリプトをVSCodeのUIで見られるリンク (実装の詳細は connpass_ops_playbook
以下をどうぞ)
「こんなに簡単です」スライドのコードも チートシート から
できる操作と書き方がつかめる ので、一読をオススメします!
「python helium」で検索すると、日本語の情報も見つかるようになってきました
https://pyconjp-staff.connpass.com/event/ から2021年のイベントをスクレイピング
イベントのタイトルと開催日を中間ファイルに保存し、 開催月 で集計
ダウンロードまたはcloneし、仮想環境を有効にしてから make all
で動くと思います
https://connpass.com/robots.txt で確認できます
現在は人が定期的に実行している➡️ 自動 で定期実行
他のスタッフも使えるようにしたい( Slack opsが理想🌟)
LT中にZoomでいただいたコメントに回答します
ログインを待つ制御の実装
wait_until
を使っています
https://selenium-python-helium.readthedocs.io/en/latest/api.html#helium.wait_until
click("ログインする")
# ログインをクリックした後、ダッシュボードのテキストが見つかるまで待ちます
wait_until(Text("あなたのイベント").exists)
ログインに使うアカウント情報(メールアドレスとパスワード)
それぞれ 環境変数 で渡しています