概要
Windowsを買って初めて起動したところからスタートしても最短15分でセットアップ完了します。
基本的にSeleniumをPythonで操作してスクレイピングする前提です。
高速セットアップに主軸を置いているので、【チョコレート味】だけど【辛口】です。
Chocolatey インストール
まず、Chocolateyが無いと面倒なことが多すぎますのでインストールします。
既にインストールしてある場合は読み飛ばしてください。
powershell を管理者権限で起動します。
インストールする前に、choco
と実行してみましょう。
$> choco
choco : 用語 'choco' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパ
スが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ choco
+ ~~~
+ CategoryInfo : ObjectNotFound: (choco:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
インストールされていないことが確認できます。
次に以下のインストールコマンドを実行します。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Note : インストールコマンドが新しくなっていないか「Installing Chocolatey」で探しましょう。
powershellを管理者権限で開きなおします。
もう一度choco
と実行すると、バージョンとヘルプメニューの出し方が表示されます。
$> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.
ここまで来たら、次に進みます。
Visual Studio Code インストール
powershellを管理者権限で起動します。
以下のコマンドを実行します。
choco install vscode
そのまま、refreshenv
、code
と2つコマンドを実行すれば、vscodeが開きます。
Visual Studio Code Extension Pack インストール
以下の2つの拡張機能をインストールします。
オススメ拡張機能はここでは触れません。
-
Japanese Language Pack for Visual Studio Code
- UIを日本語で表示するために使います。
-
Python
- Python をデバッグするためにこれは必須です。
推奨拡張機能設定
.vscode/extentions.json
を以下のように作成すれば、インストールの手間はだいぶ省けます。
そのうえ、Githubでの共有などもしやすいです。
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"coenraads.bracket-pair-colorizer-2",
"github.vscode-pull-request-github",
"ms-python.python",
"mechatroner.rainbow-csv",
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
]
}
Miniconda3 インストール
powershellを管理者権限で起動する
以下のコマンドを実行します。
choco install miniconda3
スタートメニューに
Anaconda Powershell Prompt (miniconda3)
があれば成功です。
仮想環境作成
スタートメニューに
Anaconda Powershell Prompt (miniconda3)
があるはずなので起動します。
以下のコマンドを実行して仮想環境を作成します。
conda create --name scraping-env-name
Note : コマンド詳細はコマンドリファレンスを参照
Note : scraping-env-nameはプレースホルダーです。
この時点で、拡張子が.py
のファイルをVSCodeにて開くと、今作った仮想環境を選択することができます。
仮想環境のアクティベーション
conda activate scraping-env-name
Note : コマンド詳細はコマンドリファレンスを参照
conda-forgeをチャンネルとして追加
例えば、同じnumpy
というライブラリでも、どこのリポジトリチャンネルで公開されているnumpy
を使用するのか?ということが問題になってきます。
既定では、anacondaのチャンネルからになっていますが、私はconda-forgeが好きなので、これに切り替えます。
リポジトリチャンネルにconda-forgeを追加
conda config --add channels conda-forge
conda config --set channel_priority strict
ライブラリパッケージのインストール
開発に使用したい仮想環境をアクティベートした状態で以下のコマンドを実行します。
何も入っていない仮想環境にライブラリがインストールされます。
conda install python lxml beautifulsoup4 selenium pylint yapf
- python
- これがないと何も始まりません。Pythonです。3系がインストールされます。
- lxml
- xml や html を扱うためのパーサーライブラリです。
- beautifulsoup4
- beautifulsoupはパーサーをラップして使いやすくするラッパーライブラリです。
-
Alice in Wonderland
にてMock Turtle
というキャラクターが歌う -
Turtle Soup
にbeautiful Soup!
が頻出するらしいです。
- selenium
- Seleniumはブラウザのオートメーションツールであり、それを扱うための同一名称のライブラリです。
- pylint
- yapf
- VScodeの右クリックメニューから「ドキュメントのフォーマット」を行うと注意されるので、事前に入れておきます。
- 「
autopep8
っていうフォーマッターが入ってないけど、入れとく?」とか聞いてきます。 - しかし、Google大好き少年なので
yapf
を入れておきます。 - これで決まり!最強自動コード整形ツール3選!
ライブラリのインストールは順不同でも
ちなみにライブラリをインストールする順番はなんでもいいです。
ライブラリの依存関係は自動で解決してくれますので安心しましょう。
WebDriver のインストール
Seleniumはブラウザを自動操作してくれます。
Chromeを自動操作したいので、Chromeドライバーをインストールします。
この時、Google Chrome をインストールする必要はありません。
choco install selenium-chrome-driver
※その他のWebDriver の場合には、こちらのクイックリファレンスをご覧ください。
ワークスペース設定
ここまでの設定を一通り行うと、ワークスペース設定が以下のようになっていると思います。
{
"python.pythonPath": "C:\\tools\\miniconda3\\envs\\scraping-env-name\\python.exe",
"python.formatting.provider": "yapf"
}
先ほどフォーマッターyapf
をインストールしました。
もし後からautopep8
やblack
に切り替えたい場合は、こちらで切り替えができます。
minicondaのpath
chocolateyを使用してminiconda3をインストールすると、プログラム実行時に
conda: The term 'conda' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
というメッセージが表示されます。
このままでも動作に支障はないのですが、気になるのでちゃんと設定します。
先ほどの設定ファイル.vscode/settings.json
に"python.condaPath": "C:\\tools\\miniconda3\\Scripts"
を追加して、
{
"python.pythonPath": "C:\\tools\\miniconda3\\envs\\scraping-env-name\\python.exe",
"python.formatting.provider": "yapf",
"python.condaPath": "C:\\tools\\miniconda3\\Scripts"
}
となりました。
動作確認
とりあえず、こんな感じのコードがを書きます。
F5
キーを押してエラーメッセージがでなければ準備完了です。
import lxml
from bs4 import BeautifulSoup
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.keys import Keys
options = ChromeOptions()
# options.add_argument('--headless')
driver = Chrome(options=options)
ファイアウォール設定
初めてPythonプログラムを実行したとき、ファイアウォールによってPythonがブロックされます。
あらかじめ、現在のインターネットへの接続設定を確認しておき、プライベートかパブリックか該当するほうを選択します。
選択したら「アクセスを許可する」をクリックしましょう。
そうすると、ファイアウォールルールが作成されるので、
この仮想環境のPythonはブロックされず正常に通信できるようになります。
もし間違えても、wf.msc
で確認・変更することができます。
または「許可されたアプリ」からもできます。
「コントロール パネル\すべてのコントロール パネル項目\Windows Defender ファイアウォール\許可されたアプリ」
それか、Get-NetFirewallRule
とかNew-NetFirewallRule
、Set-NetFirewallRule
を駆使すればいいと思います。
それでは
ステキなスクレイピングマスターを目指しましょう
Excelsior!
参考資料