2017-11-13

【Python】Windows Subsystem for LinuxでSelenium環境を整える

前回の記事では、Windows10にWindows Subsystem for Linuxの機能を使い、Ubuntu上でPython環境を構築しました。


Windows Subsystem for LinuxでUbuntu環境を構築し、Python環境を整える

Bash on WindowsからUbuntu環境を構築し、Python環境を整えてみた Windows Subsystem for Linux(Bash on Windows)により、Windows内でUbuntuを動かし、Bashシェルを使えるようになりました。 Windowsのコマンドプロンプトでたたくシェルは、cmd.exeというそうです。

今回は一歩進んで、Windows Subsystem for LinuxでSelenium環境をセットアップする方法を解説します。


うまくいくと、Seleniumを動かせるようになります。以下の画像では、Chromiumが起動させることができています。





手順

コマンドラインを起動し、

$ bash

と入力します。こうすると、bashシェルが使えるようになります。この後にもろもろのパッケージをインストールします。

$ sudo apt-get install python3
$ sudo apt-get install python3-pip
$ sudo pip3 install selenium
$ sudo apt-get install npm
$ sudo apt-get install chromium-browser

さてさて、そのあとはPythonファイルを実行するためのディレクトリを構築します。

$ cd /mnt/c
$ mkdir workspace #workspaceというフォルダを/mnt/c以下に作成
$ cd workspace # /mnt/c/workspaceに移動
$ mkdir pydev #workspaceというフォルダを/mnt/c/workspace以下に作成
$ cd pydev #/mnt/c/workspace/pydev


  • mkdirは、make directoryの略で、フォルダを作成します


Seleniumを動かすためのブラウザをダウンロードします。今回はchrome上で動かしたいので、chromedriverをダウンロードし、解凍します。


$ wget http://chromedriver.storage.googleapis.com/2.21/chromedriver_win32.zip
$ unzip chromedriver_win32.zip # /mnt/c/workspace/pydev/chromedriver.exe


  • wgetは、指定されたURLからファイルをダウンロードするコマンドです
  • unzipは、ファイルを解凍するコマンドです


/mnt/c/workspace/pydev下にchromedriver.exeを設置します。



次に、Seleniumが起動しているかを確かめるpythonファイルを作成します。
/mnt/c/workspace/pydevに移動し、以下のコマンドを実行します。

$ mkdir helloPython
$ cd /mnt/c/workspace/pydev/helloPython
$ touch hello.py


  • touchは、ファイルを作成します。





/mnt/c/workspace/pydev/helloPython/hello.pyをエディタで選択し、以下のコードを追加します。

hello.py

import sys
import os
from selenium import webdriver

//1
driver = webdriver.Chrome(executable_path='/mnt/c/workspace/pydev/chromedriver.exe')
//2
driver.get("https://www.google.co.jp/")
print(driver.title)

  1. こちらには、ダウンロードしたchromedriver.exeのpathを指定します
  2. getの引数にアクセスしたいページのURLを入力します。


あとはこのhello.pyを実行してみてください。

$ python3 hello.py


そうすると、chromeが自動で起動し、Googleにアクセスしてくれます。




注目の投稿

めちゃくちゃ久しぶりにこのブログ書いたw 更新3年ぶりw > 多様性というゲームは尊厳と自由を勝ち取るゲームなのかもしれないな。  もともとツイッターでツイートした内容なんだけど、ちょっと深ぼる。 ----- 自分は男 x 30代x 二児の父 x 経営者 x 都心(共働き世...