Submit Search
Upload
Pythonでブラウザをいっぱい動かしたい
•
0 likes
•
241 views
Kameko Ohmura
Follow
PyCon JP 2021 LT
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 11
Download now
Download to read offline
Recommended
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
Fuminobu TAKEYAMA
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
テストを書こう、Unity編
テストを書こう、Unity編
Hiroto Imoto
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
aoshiman
Recommended
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
Fuminobu TAKEYAMA
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
テストを書こう、Unity編
テストを書こう、Unity編
Hiroto Imoto
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
aoshiman
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
SPAJAMでやったこと
SPAJAMでやったこと
Hiroto Imoto
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
Yusuke Ando
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
Unity testtool
Unity testtool
大介 束田
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
QtでHello, World!!
QtでHello, World!!
treby
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare Hack
Kazushige TAKEUCHI
Pythonのシグナル処理
Pythonのシグナル処理
Atsuo Ishimoto
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
tomitomi3 tomitomi3
Pythonでゲーム作る
Pythonでゲーム作る
amusementcreators
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Kir Chou
Why python
Why python
TeppeiAkada1
Why python
Why python
TeppeiAkada1
More Related Content
What's hot
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
SPAJAMでやったこと
SPAJAMでやったこと
Hiroto Imoto
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
Yusuke Ando
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
Unity testtool
Unity testtool
大介 束田
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
QtでHello, World!!
QtでHello, World!!
treby
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare Hack
Kazushige TAKEUCHI
Pythonのシグナル処理
Pythonのシグナル処理
Atsuo Ishimoto
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
tomitomi3 tomitomi3
Pythonでゲーム作る
Pythonでゲーム作る
amusementcreators
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
株式会社 システムヨシイ
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Kir Chou
What's hot
(20)
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
SPAJAMでやったこと
SPAJAMでやったこと
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Unity testtool
Unity testtool
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
QtでHello, World!!
QtでHello, World!!
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare Hack
Pythonのシグナル処理
Pythonのシグナル処理
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Gws in fukuoka
Gws in fukuoka
Python3 プログラミング勉強会
Python3 プログラミング勉強会
パッケージングの今と未来
パッケージングの今と未来
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
Pythonでゲーム作る
Pythonでゲーム作る
Pythonでpdfをいじってみる
Pythonでpdfをいじってみる
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Similar to Pythonでブラウザをいっぱい動かしたい
Why python
Why python
TeppeiAkada1
Why python
Why python
TeppeiAkada1
実務でGo使い始めました
実務でGo使い始めました
Yuki Kikuchi
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
Pythonでwebdriver
Pythonでwebdriver
株式会社 システムヨシイ
PredictionIOのPython対応計画
PredictionIOのPython対応計画
Shinsuke Sugaya
S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3
Takeshi Akutsu
PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4
Takeshi Akutsu
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
Shohei Tai
俺 と ご褒美 Bot
俺 と ご褒美 Bot
Masayuki KaToH
はじめてのWord pressプラグイン勉強会
はじめてのWord pressプラグイン勉強会
Takahiro Nakahata
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Takeshi Akutsu
Ipythonを使ってみよう
Ipythonを使ってみよう
株式会社 システムヨシイ
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
【A-5】(招待LT)灘校パソコン研究部とは
【A-5】(招待LT)灘校パソコン研究部とは
Satoru Cho
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
Takayuki Shimizukawa
Similar to Pythonでブラウザをいっぱい動かしたい
(20)
Why python
Why python
Why python
Why python
実務でGo使い始めました
実務でGo使い始めました
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Pythonでwebdriver
Pythonでwebdriver
PredictionIOのPython対応計画
PredictionIOのPython対応計画
S03 t1 python_learningdiary#3
S03 t1 python_learningdiary#3
PHPとJavaScriptの噺
PHPとJavaScriptの噺
S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
俺 と ご褒美 Bot
俺 と ご褒美 Bot
はじめてのWord pressプラグイン勉強会
はじめてのWord pressプラグイン勉強会
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Ipythonを使ってみよう
Ipythonを使ってみよう
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
【A-5】(招待LT)灘校パソコン研究部とは
【A-5】(招待LT)灘校パソコン研究部とは
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
More from Kameko Ohmura
BPLL #43 老後の資産を作ろう
BPLL #43 老後の資産を作ろう
Kameko Ohmura
Windowsマシンを使いだしたときの失敗談
Windowsマシンを使いだしたときの失敗談
Kameko Ohmura
PyLadies Tokyo 5周年パーティー
PyLadies Tokyo 5周年パーティー
Kameko Ohmura
BPLL説明
BPLL説明
Kameko Ohmura
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
Kameko Ohmura
オンライン 英会話の すすめ
オンライン 英会話の すすめ
Kameko Ohmura
ラーニングランチとは
ラーニングランチとは
Kameko Ohmura
What do I want to do?
What do I want to do?
Kameko Ohmura
Aws上のWin鯖にRDC
Aws上のWin鯖にRDC
Kameko Ohmura
More from Kameko Ohmura
(9)
BPLL #43 老後の資産を作ろう
BPLL #43 老後の資産を作ろう
Windowsマシンを使いだしたときの失敗談
Windowsマシンを使いだしたときの失敗談
PyLadies Tokyo 5周年パーティー
PyLadies Tokyo 5周年パーティー
BPLL説明
BPLL説明
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
オンライン 英会話の すすめ
オンライン 英会話の すすめ
ラーニングランチとは
ラーニングランチとは
What do I want to do?
What do I want to do?
Aws上のWin鯖にRDC
Aws上のWin鯖にRDC
Pythonでブラウザをいっぱい動かしたい
1.
Pythonでブラウザをいっ ぱい動かしたい 2021-10-16 kame-chan
2.
自己紹介 - kame-chanです。@okusama27 - 普段は株式会社BeProudでPython学習サービスPyQの開発・管理・運用・保守と かいろいろをやってます。 -
PyLadies Tokyoスタッフやってます。
3.
アジェンダ - Pythonでブラウザをいっぱい動かしたい理由 - ざっくり並列処理とは? -
実演 - thredingで書いてみた - concurrent.futuresで書いてみた - acync/awaitって美味しいの? - これから調べたいこと
4.
Pythonでブラウザをいっぱい動かしたい理由 ● リリースの度に約1,700問の問題をブラウザ上で実行しているから。 ○ 実行に1問1分くらいかかる。 ○
1問を実施するのに「表示」「実装」「実行」「判定」「結果表示」の 5工程がある ○ 普通に手動で実行すると 28時間!1日8時間勤務だと3.5日。 ○ 問題が少ないときは手動で実行していたが、現在は seleniumで自動化。
5.
そうだ!1つのプログラムで 複数のブラウザを動かそう!
6.
Pythonにもある気がする並行処理 - ざっくりいうと、同時にいくつかの処理を 実行すること。 - 上から順に書くと、プログラムは上から 順番に実行する。 -
処理1が終わったら処理2を開始、処理 2が終わったら処理3を開始という順序 で動く。 - Pythonにはいくつか処理を平行に実施 できる手段が用意されています。
7.
実装してみました
8.
threading for i in
range(5): if threading.active_count() >= 2: time.sleep(5) continue thread = threading.Thread(target=run_browser, args=(i,)) thread.start() time.sleep(2) 現状では、優先度 (priority)やスレッドグループがなく、スレッドの破壊 (destroy)、中断 (stop)、一時停止 (suspend)、復帰 (resume)、割 り込み (interrupt) は行えません。 (Python公式ドキュメント)
9.
concurrent.futures with futures.ThreadPoolExecutor(max_workers=2) as
executor: for i in range(5): future = executor.submit(run_browser, i) time.sleep(2) max_workersで起動数の制御ができる。 非同期実行は ThreadPoolExecutor を用いてスレッドで実行することも、 ProcessPoolExecutor を用いて別々のプロセスで実行することもできます.
10.
asyncio loop = asyncio.get_event_loop() gather
= asyncio.gather(run_browser(1), run_browser(2), run_browser(3)) loop.run_until_complete(gather) asyncio は async/await 構文を使い 並行処理の コードを書くためのライブラリです。 Javascript(React?)界隈で流行って、Python3.5でasync 構文と await 構文が追加さ れたっぽいです。
11.
これから - 以下を調べたい - いろいろ方法があるけど、どれがいいの? -
concurrent.futuresのいいところは? - async/awaitを使ったほうがいい状況を知りたい - async/awaitをがっつり学べるPythonの書籍があれば知りたい。なければ、 Reactの本?
Download now