LoginSignup
1
0

More than 1 year has passed since last update.

PythonでSeleniumを使用してスクレイピングを行うための準備

Last updated at Posted at 2022-02-26

色々試行錯誤したので備忘録として残す

ちなみに最近はpyppeteer使えば、感覚的に使えるしChromeDriverのインストールも勝手にやってくれて便利だけど、古いやり方の方がネット資料も多いので。

pyppeteerの使い方関連に関してはこちらを参照
参考:Pythonでスクレイピング - Seleniumなんてもう古い!?・・・Pyppeteerの使い方
参考:pyppeteerの使い方

この記事では、表題の通りPythonでSeleniumを使用してスクレイピングを行うための準備について記載する。

やる事リスト

1.pyenvのインストール
2.venvで環境を汚さないようにする。
3.ChromeDriver-binaryというモジュールをpipでインストールする

1.pyenvをインストールする為の準備と設定

1.1.必要モジュールのインストール

# Ubuntuの場合
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# CentOSの場合
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline \
readline-devel sqlite sqlite-devel openssl openssl-devel git \
libffi-devel

1.2.pyenvをインストール

# ソースをカレントディレクトリに配置
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# .bashrc に下記の内容を記述
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

再読込(いらないかも)

. .bashrc

※忘れるのでメモ(pyenvに任意のバージョンをインストールし、使用する)

# インストール可能なバージョン一覧を表示
pyenv install -l

# インストール
pyenv install 3.9.10

# 使用する
pyenv global 3.9.10

# ローカルにインストール済のバージョン確認
pyenv versions

# 現在使用中のバージョン確認
pyenv version

# 使用可能状態になると、今までpython3コマンドで打たないと駄目だったのが、pythonコマンドで使えるようになる。
python --version

2.venv設定を行う

python -m venv <好きな名前>

例)
python -m venv 3.9.10

# venv環境に入る時
. 3.9.10/bin/activate

# venv環境から抜ける場合
deactivate

3.ChromeDriver-binaryをインストール

# Seleniumも入れる
pip install selenium chromedriver-binary

※これは、ChromeDriverとは別物でpipを使用してインストールする
※ローカル環境にすでに通常版Chromeが入っているとバージョンの違いでPythonで動かした時、下記のようなエラーが出るので注意

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 99
Current browser version is 98.0.4758.102 with binary path /usr/bin/google-chrome

ChromeDriver-binaryの一覧は下記URLで確認出来る
https://pypi.org/project/chromedriver-binary/#history

バージョンを指定してインストールする場合のコマンド

pip install chromedriver-binary==98.0.4758.102.0

※ChromeDriver-binaryをインストールするとChromeDriverとは違ってimport文だけで使用出来る

# ChromeDriver-binaryを使用した場合
import chromedriver_binary
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.yahoo.co.jp')

###########################################

# ChromeDriver-binaryを使用しない場合
from selenium import webdriver
driver = webDriver.Chrome(executable_path='/home/vagrant/chromedriver')
driver.get('https://www.yahoo.co.jp')

スクリピングにはSeleniumだけでなくScrapy?やらrequests?やら構造解析用にBeautifulSoupやら色々モジュールがあってちゃんと頭の中でまとまってないので、そこは別の方にお任せ(他人任せ)

1
0
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
1
0