LoginSignup
2
3

pythonでスクレイピングするための準備 【チョコレート味】

Last updated at Posted at 2020-07-28

概要

Windowsを買って初めて起動したところからスタートしても最短15分でセットアップ完了します。
基本的にSeleniumをPythonで操作してスクレイピングする前提です。
高速セットアップに主軸を置いているので、【チョコレート味】だけど【辛口】です。

Chocolatey インストール

まず、Chocolateyが無いと面倒なことが多すぎますのでインストールします。
既にインストールしてある場合は読み飛ばしてください。

powershell を管理者権限で起動します。
インストールする前に、chocoと実行してみましょう。

Administrator's-Powershell
$> choco
choco : 用語 'choco' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパ
スが正しいことを確認してから、再試行してください。
発生場所 :1 文字:1
+ choco
+ ~~~
    + CategoryInfo          : ObjectNotFound: (choco:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

インストールされていないことが確認できます。

次に以下のインストールコマンドを実行します。

Administrator's-Powershell
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と実行すると、バージョンとヘルプメニューの出し方が表示されます。

Administrator's-Powershell
$> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.

ここまで来たら、次に進みます。

Visual Studio Code インストール

powershellを管理者権限で起動します。
以下のコマンドを実行します。

Administrator's-Powershell
choco install vscode

そのまま、refreshenvcodeと2つコマンドを実行すれば、vscodeが開きます。

Visual Studio Code Extension Pack インストール

以下の2つの拡張機能をインストールします。

オススメ拡張機能はここでは触れません。

推奨拡張機能設定

.vscode/extentions.jsonを以下のように作成すれば、インストールの手間はだいぶ省けます。
そのうえ、Githubでの共有などもしやすいです。

.vscode/extentions.json
{
	// 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を管理者権限で起動する
以下のコマンドを実行します。

Administrator's-Powershell
choco install miniconda3

スタートメニューに
Anaconda Powershell Prompt (miniconda3)
があれば成功です。

仮想環境作成

スタートメニューに
Anaconda Powershell Prompt (miniconda3)
があるはずなので起動します。
以下のコマンドを実行して仮想環境を作成します。

Anaconda-Powershell-Prompt-(miniconda3)
conda create --name scraping-env-name

Note : コマンド詳細はコマンドリファレンスを参照
Note : scraping-env-nameはプレースホルダーです。

この時点で、拡張子が.pyのファイルをVSCodeにて開くと、今作った仮想環境を選択することができます。
image.png

仮想環境のアクティベーション

Anaconda-Powershell-Prompt-(miniconda3)
conda activate scraping-env-name

Note : コマンド詳細はコマンドリファレンスを参照

conda-forgeをチャンネルとして追加

例えば、同じnumpyというライブラリでも、どこのリポジトリチャンネルで公開されているnumpyを使用するのか?ということが問題になってきます。
既定では、anacondaのチャンネルからになっていますが、私はconda-forgeが好きなので、これに切り替えます。

リポジトリチャンネルにconda-forgeを追加

Anaconda-Powershell-Prompt-(miniconda3)
conda config --add channels conda-forge
conda config --set channel_priority strict

ライブラリパッケージのインストール

開発に使用したい仮想環境をアクティベートした状態で以下のコマンドを実行します。
何も入っていない仮想環境にライブラリがインストールされます。

Anaconda-Powershell-Prompt-(miniconda3)
conda install python lxml beautifulsoup4 selenium pylint yapf
  • python
    • これがないと何も始まりません。Pythonです。3系がインストールされます。
  • lxml
    • xml や html を扱うためのパーサーライブラリです。
  • beautifulsoup4
    • beautifulsoupはパーサーをラップして使いやすくするラッパーライブラリです。
    • Alice in WonderlandにてMock Turtleというキャラクターが歌う
    • Turtle Soupbeautiful Soup!が頻出するらしいです。
  • selenium
    • Seleniumはブラウザのオートメーションツールであり、それを扱うための同一名称のライブラリです。
  • pylint
    • VScodeのリンターに注意されるので、事前に入れておきます。
    • image.png
  • yapf
    • VScodeの右クリックメニューから「ドキュメントのフォーマット」を行うと注意されるので、事前に入れておきます。
    • image.png
    • autopep8っていうフォーマッターが入ってないけど、入れとく?」とか聞いてきます。
    • しかし、Google大好き少年なのでyapfを入れておきます。
    • これで決まり!最強自動コード整形ツール3選!

ライブラリのインストールは順不同でも

ちなみにライブラリをインストールする順番はなんでもいいです。
ライブラリの依存関係は自動で解決してくれますので安心しましょう。

WebDriver のインストール

Seleniumはブラウザを自動操作してくれます。
Chromeを自動操作したいので、Chromeドライバーをインストールします。
この時、Google Chrome をインストールする必要はありません。

Administrator's-Powershell
choco install selenium-chrome-driver

※その他のWebDriver の場合には、こちらのクイックリファレンスをご覧ください。

ワークスペース設定

ここまでの設定を一通り行うと、ワークスペース設定が以下のようになっていると思います。

.vscode/settings.json
{
    "python.pythonPath": "C:\\tools\\miniconda3\\envs\\scraping-env-name\\python.exe",
    "python.formatting.provider": "yapf"
}

先ほどフォーマッターyapfをインストールしました。
もし後からautopep8blackに切り替えたい場合は、こちらで切り替えができます。
image.png

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"を追加して、

.vscode/settings.json
{
    "python.pythonPath": "C:\\tools\\miniconda3\\envs\\scraping-env-name\\python.exe",
    "python.formatting.provider": "yapf",
    "python.condaPath": "C:\\tools\\miniconda3\\Scripts"
}

となりました。

動作確認

とりあえず、こんな感じのコードがを書きます。
F5キーを押してエラーメッセージがでなければ準備完了です。

test001.py
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がブロックされます。
あらかじめ、現在のインターネットへの接続設定を確認しておき、プライベートかパブリックか該当するほうを選択します。
選択したら「アクセスを許可する」をクリックしましょう。
image.png
そうすると、ファイアウォールルールが作成されるので、
この仮想環境のPythonはブロックされず正常に通信できるようになります。

もし間違えても、wf.mscで確認・変更することができます。
image.png

または「許可されたアプリ」からもできます。
「コントロール パネル\すべてのコントロール パネル項目\Windows Defender ファイアウォール\許可されたアプリ」image.png

それか、Get-NetFirewallRuleとかNew-NetFirewallRuleSet-NetFirewallRuleを駆使すればいいと思います。

それでは

ステキなスクレイピングマスターを目指しましょう

Excelsior!

参考資料

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3