pyautoguiでマウスを移動してみる

 

Pythonではpipでpyautoguiをインストールしてマウスやキーボードの自動化をプログラミングできます。

簡単な関数

  • position – 現在のマウスカーソル位置を取得
  • moveTo(x,y) – xy座標にマウスカーソルを移動
  • size – 画面解像度を取得。HDモニターなら1920×1080

チートシート

http://pyautogui.readthedocs.io/en/latest/cheatsheet.html

フェイルセーフ

マウスキーボードを自動化プログラムを実行すると、自分でマウス操作ができなくなってしまいます。開発中はそれを避けるため、pyautogui.PAUSEでウェイト秒数を指定して、ゆっくり動作するようにします。またpyautogui.FAILSAFEをTrueにすると、画面左上、つまり(0,0)にマウスカーソルを持っていくと、FaleSafeExceptionが発生しプログラムを強制終了させます。

 

Python3でSeleniumを使ってブラウザーを操作する

Pythonでは、seleniumを使って簡単にブラウザー操作ができます。

環境構築

  1. pip install selenium
  2. Chrome用のWebDriverをダウンロード、スクリプト内でexeファイルを参照

以前のSeleniumでは、Firefoxの場合はWebDriverが不要だったようですが、現在はFirefoxでもWebDriverが別途必要なようです。

ソースコード

XKCDコミックのサイトからコミックをダウンロードする。

https://automatetheboringstuff.com/chapter11/ で指定サイトのHTMLをダウンロードして、そのHTMLをbeautifulSoupでパースして、画像をダウンロードするプログラムを作りました。

これは様々なサイトに応用できます。

Google検索して、結果の上位5個を、ブラウザーを起動して表示するPythonスクリプト

automatetheboringstuff.com でPythonでGoogle検索し結果から上位5つをブラウザーを起動して表示する方法を学びました。pipコマンドで、requests,beautifulsoup4を導入して簡単にできました。

Python List Comprehension リスト内包表記

Pythonでは、タプルやリストをアスタリスク演算子で特定の型に変換できます。静的言語のキャストのような感じで、「アンパック」と呼ばれます。

https://docs.python.jp/3/tutorial/controlflow.html#unpacking-argument-lists

以下の例では、この仕組みを使い、リストの要素がタプルになっている入力データを、Personクラスに変換して、表示しています。このように特定のクラスに変換できると、クラスのプロパティやメソッド呼び出しでコードが見やすくなります。

参考資料

https://docs.python.jp/3/whatsnew/2.0.html#list-comprehensions

https://stackoverflow.com/questions/46528460/passing-a-list-of-argument-sets-to-a-function

https://en.wikipedia.org/wiki/List_comprehension

Automate the Boring Stuff with Python でいろんな自動化を学ぼう。

O’Reilly Japan – 退屈なことはPythonにやらせよう」の日本語版が2017年6月に販売されました。気になったので、目次を見たところ前半の0章から10章までは初心者向けのPython入門なので、購入しようかどうか迷っていたのですが、英語版は、「https://automatetheboringstuff.com/」で公開されていていました。

私はプログラミング経験があり、PythonのWebフレームワークのFlaskやスクレイピングライブラリーのBeautifulSoupを少し使ったことがあるので、英語版で各ライブラリーの使い方を参考にしながら、ソースコードを動かせばよさそうなのが分かりました。

11章からの概要

  • 11章 Web スクレイピング
    • Requests – Webサイトをダウンロードする
    • Beautiful Soup – HTMLパーサー
    • Selenium – ブラウザー起動や操作
  • 12章 Excel操作
  • 13章 PDF,Word
  • 14章 CSV JSON
  • 15章 スケジュール管理、時間制御、タイマー、ストップウォッチ
  • 16章 メール、テキストメッセージ
  • 17章 イメージ操作
  • 18章 キーボードマウス操作

ブラウザー操作、画像認識、キーボードマウス操作がプログラミングで制御できるといろいろできそうです。

 

 

 

PythonのMatplotlibで指数関数expを表示してみる

Pythonはnumpyとmatplotlibを使うと数学のグラフなどを簡単に表示できるので指数関数を表示してみました。

matplotlibで手軽にグラフを表示!

ベン図を書こう

関数型プログラミング言語のF#を勉強していく過程で、関数型言語はプログラミングよりも数学の集合や写像を勉強したほうが良いことが分かってきました。

もう少し具体的に言うと、数学のテストが解けるようになるのではなく、プログラミングで普段使っている、集合、Set、disjoint union、Discriminated Union、直積、直和、関数、function、マップ、タプル、などを、数学の記号、数学の読み方、XY座標、ベン図でも理解できるようにしておかないといけないと感じました。

といっても数学の勉強をしはじめると眠くなるだけなので、Python3のmatplotlibでベン図を作ってみようと思います。本当はF#でやってみたいのですがやりかたが分かりません。

Windows10で手軽なPython3環境構築

Windows10でPython3の環境を簡単に構築するには、以下だけです。

  1. Python3を公式サイトからインストール
  2. Visual Studio Code テキストエディタをインストール

Visual Studio Codeは、hello.pyなどのファイルを作ってpythonを書いていこうとすると、それを検知して、Python拡張機能インストールする?pep8インストールする?といい感じにやってくれます。なので、autopep8,pep8,pylintなどがボタン押しているだけで構築できます。

matplotlibのインストール

依存関係で、numpyなど必要なライブラリーもインストールしてくれます。

またsympyという数式処理ライブラリーもあるようです。これも必要ならpipで簡単にインストールできました。

 

追記

Windows10(64bit)+Python3.5(32bit)だと、pip install scipyでSciPyがインストールできませんでした。以下URLを参考にして、pip uninstall numpyをして、.whlファイルをダウンロードして、numpy+mklとSciPyをインストールしました。ダウンロードするファイルはたくさんありますが、cp35とかcp36と書かれているのは、CPythonつまり普通のPythonの事です。よってPython3.5(32bit)を使っている場合は、cp35-cp35m-win32.whlという末尾のファイルをダウンロードしてインストールします。

http://qiita.com/r-ngtm/items/15caf43648acbccd37d2

 

とりあえず、サインカーブ

matplotlibを使うとWindows10のPython3で簡単にベン図が書けるようなので試してみます。

001
できた!

ベン図を書いてみます

pip install matplotlib-venn

とりあえず動作テストをしてみます。

figure_1
ベン図だ!!!