🐍

pythonを用いたスクレイピング(自動化)のやり方

2024/05/20に公開

友人にスクレイピングを楽しく学んでもらうためにスクレイピングの始め方をまとめたものです。

  • seleniumとは?
  • 環境構築
  • 簡単な例

seleniumとは?

  • seleniumは簡単に言うと、自動化のツールです。
  • これまで人が行っていたマウスのクリックや検索などの様々な操作を自動化します。
  • seleniumがweb driverを介してPCを自動操作してくれます。

コード例

こんな感じで使います。見た目だけ知ってもらえれば大丈夫です。

example.py

    # seleniumのインポート
    from selenium import webdriver
    
    # driverを起動
    driver = webdriver.Chrome() 
    
    # 自動化したい操作 ↓
    url = "https://www.google.com/"  # 自動でGoogleのトップページを開く
    driver.get(url)

環境構築

seleniumの導入

ターミナルを開いて以下を順番に実行します。$の行のみ実行します。
※$は要りません。

ターミナル
# pip をupgrade
$ python.exe -m pip install --upgrade pip

# webdriver-managerがインストールされている場合は削除
$ pip uninstall webdriver-manager

# selenium を pip インストール
$ sudo pip install selenium 

# version確認
$ pip list
~
selenium   4.21.0      <== こんな感じのが一覧にあれば成功です!
~

以上、環境構築でした。

簡単な例

動かしてみる

  • ファイルを新規作成。名前は「sample.py」としておきます。
    ※メモ帳とかの新規作成で良いです。

書いていく

  • インポートが必要

    example.py
    from selenium import webdriver #これインポート
    driver = webdriver.Chrome() # Chrome用webドライバーを起動
    
  • 動かしてみる1(自動でwebページを表示する)

    example.py
    # 上のコードの続きに書いていきます。
       
    url = "https://www.google.com/"  # 自動でGoogleのホームページを開いてみる
    driver.get(url)
    

    ターミナルを開いて以下で実行します

    ターミナル(またはコマンドプロンプト)
    $ python example.py # python ファイル名.pyで実行できます。
    
  • 動かしてみる2(自動で検索をする)

    example.py
    # これまた上の続きに書きます。
    
    import time # 追加でインポート
    
    # 適当にYahooと検索してみます。
    time.sleep(2) # googleのホームページが開くまで待つ
    search_box = driver.find_element("name", "q") # 検索窓を探す
        
    search_box.send_keys('yahoo') # 検索窓に入力する
    time.sleep(2)
    
    search_box.submit() # 検索する
    time.sleep(3)
    
  • 動かしてみる3(クリック操作)
    クッキークリッカー」というサイトを知ってますか?

    クッキーをクリックするとポイントがゲットできる遊びができます。一回やってみてください。

このクリックを自動化してポイントをたくさん稼いでみたいと思います。


ファイルを新規作成します。今度は名前を「sample2.py」としておきます。

example2.py
# インポート
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Chrome用webドライバーを起動
driver = webdriver.Chrome() 

# サイトを開く
url = "https://natto0wtr.web.fc2.com/CookieClicker/" #クッキーClickerのサイト
driver.get(url)
driver.maximize_window() # windowを最大化
time.sleep(10)

# クリックして遊ぶ(要素を指定してクリックを行う)
cookie = driver.find_element(By.ID, "bigCookie")
for i in range(500):
    cookie.click()

time.sleep(5)

その他様々な操作が可能

だんだん遊び方がわかってきたでしょうか...?

seleniumではクリック以外にもスクロールや文字入力などたくさんのことができます。
どんなことができるかは以下のリファレンスに書かれています。

いろいろ試してみてください。
それではよいseleniumライフを!

seleniumのAPIリファレンス

Discussion