0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python、SeleniumでWebブラウザ操作

Last updated at Posted at 2021-03-07

#概要

ブラウザを立ち上げ→Qiitaのトップページに移動→検索ボックスにキーワードを入力→検索までの一連の作業をPython, Seleniumを用いて実行するコードを書きました。

このコードを発展させれば、ブラウザ立ち上げ→ログイン自動化→フィルター条件設定→データダウンロードといった一連の作業を自動化できます。

<環境>
OS:Windows
Code Editor:Visual Studio Code
python:3.9.2

#準備

##pythonのインストール

以下からOSにあったpythonをインストールする。
https://www.python.org/downloads/
image.png

VS codeのTerminalに以下を入力し、インストールの確認を行う。

py -m pip install selenium
py -V #バージョン確認

##seleniumのインストール

VS codeのTerminalに以下を入力し、インストールする。

py -m pip install selenium #pipでインストール

##ブラウザドライバーのダウンロード

###Google Chromeの場合

google chromeのバージョンを確認する。(右上のアイコン→ヘルプ→Google Chromeについて)
image.png
以下から、確認したChromeのバージョンにあったChrome Driverを選択。
OSにあったzipファイルをダウンロードし、解凍する。
https://chromedriver.chromium.org/downloads
image.png
image.png

###Microsoft Edge (New Edge)の場合

Google Chromeと同じため、画像は省略。
Microsoft Edgeのバージョンを確認する。(右上のアイコン→ヘルプとフィードバック→Microsoft Edgeについて)
以下から、確認したEdgeのバージョンにあったWebDriverを選択。
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
OSにあったzipファイルをダウンロードし、解凍する。

#コード

F12でQiitaの検索ボックスのHTMLを確認すると、class名がst-RenewalHeader_searchInputであることがわかる。qiita.pyというファイルを作成し、以下のコードを記入。

qiita.py
# coding:utf-8
from selenium import webdriver

# Google Chromeを立ち上げ、Qiitaのトップページを開く。
driver = webdriver.Chrome(executable_path='chromedriver.exeのパス')
driver.get('https://qiita.com/')

# Microsoft Edgeを立ち上げ、Qiitaのトップページを開く。
driver = webdriver.Edge(executable_path='msedgedriver.exeのパス')
driver.get('https://qiita.com/')

# 検索ボックスを取得し、キーワードを入力後、検索
keyword_txb = driver.find_element_by_class_name('st-RenewalHeader_searchInput')
keyword_txb.send_keys('python selenium')
keyword_txb.submit()

コードを実行すると、ブラウザが立ち上がり、検索ボックスにキーワード(python selenium)が入力され、結果が表示される。

#つまづいた点

  • pythonのバージョン確認
python -V #バージョンが表示されない。Python→pyで正しく表示。
Python
  • seleniumのインストール
pip install selenium #エラーになる。py -mが必要
  • ブラウザのバージョンとドライバのバージョンが異なる

ブラウザのバージョンと異なるバージョンのドライバをダウンロードした結果、起動した瞬間、ブラウザが閉じ、VS codeのターミナルにバージョンが異なる旨のエラーメッセージが表示される。

#最後に

クローリング、スクレイピングをする場合、著作権、サーバー側の負荷、利用規約に注意が必要。スクレイピングでダウンロードしたデータを第3者に提供した場合は、著作権法違法になる可能性がある。また、以下のサービスは、利用規約でスクレイピングが禁止されている。

  • Twitter
  • Instagram
  • Amazon
  • J-PlatPat 特許情報プラットフォーム
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?