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章 キーボードマウス操作

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

 

 

 

AndroidStudio3 Beta2で、val|varや戻り値に自動で型推論を表示する方法

AndroidStudio3 Beta 2では、初期設定でエディター上にタイプヒントが表示されません。 [Settings]->[Editor]->[General]->[Appearance]->[Configure…]と選択し、Configure Parameter Name Hintsダイアログを表示します。

[Language]でKotlinをリストから選択し、以下画面のように、Optionsにある4つの項目にチェックをすると、型推論の結果をエディターに表示してくれます。

 

有効になると、以下のようにvalを使ったときや戻り値などで、型を書かなくても表示してくれるので大変便利です。

自動で型ヒントが表示されるので分かりやすい!

Kotlin初心者におすすめの資料

Kotlinの入門資料はいろいろありますが、日本語で分かりやすいものをまとめてみました。

Kotlin入門までの助走読本

Kotlin入門までの助走読本は、少ないページで要点がまとまっているので、Kotlinがどんなものか把握するのにお勧めです。Javaに対してどのような部分が便利になっているかや、https://try.kotlinlang.org/ などのツールの紹介など幅広く理解できます。何か入門サイトで始める前にちょっと見てみるとよいです。

30分で覚えるKotlin文法

http://qiita.com/k5n/items/cc0377b75d8537ef8a85

ある程度プログラミングを経験すると、入門で細かく書かれている文法書よりも既存の知識を生かして、基本的なものは簡素な説明で、固有言語に特化した部分は深く調べるためにキーワードが分かればよい場合もあります。

この「30分で覚えるKotlin文法」は実際に30分で把握するのは難しいですが、小さな文法サンプルが書かれているので、Kotlin文法のチートシートとしてブラウザで開きながら使うとよいです。

Kotlin のコレクション使い方メモ

http://qiita.com/opengl-8080/items/36351dca891b6d9c9687

Kotlinのコレクションは、Iteratableインタフェースを持っているので、map,filter,forEachなどが使えます。これもチートシートとして便利です。

KotlinとJavaFXで遺伝的アルゴリズムで、特定文字列(“to be or not to be”)に進化させる

以前Nature of Codeで作った遺伝的ルゴリズムのプログラムを移植しました。KotlinとJavaFXで遺伝的アルゴリズムで、特定文字列(“to be or not to be”)に進化させるプログラムです。Kotlinのコレクションクラスは、List.mapやList.forEachのようにIteratableインタフェースの便利APIが用意されているので、for文を使わず簡素に書けました。