Python プログラミング

ログインが必要なWebページをスクレイピングするならPython+Seleniumがオススメ

投稿日:2018年8月4日 更新日:

こんにちは!シミダイ(@shimidai2100)です。

「Python」とWebテストツールとして有名な「Selenium」を使用して、

ログインが必要なWebページのスクレイピング・クローリングを行う手順を紹介します。

最近のログインが必要ページは「メールアドレス」、「パスワード」以外にも、「Cookie」や「ハッシュ値」などの情報も裏ではログイン時に送っています。

アプローチ方法として「requests」ライブラリや「Scrapy」がありますが、どちらも学習コストが高く簡単には使いこなせません。

そのため、初心者でも簡単に扱うことが出来るSelenium」が大変オススメになります。

今回は「Selenium」の「Google Chrome」ドライバーを使用したWebページのスクレイピング・クローリングを行っていきます。

「Selenium」の扱い方については以下の記事にもまとめていますので参考にしてみてください。

[Python]Seleniumのインストール方法とWebブラウザ操作の自動化 [初心者向け]

こんにちは!シミダイ(@shimidai2100)です。 Webテストツールとして有名な「Selenium」を使用して、Webブラウザ操作の自動化を行う手順を紹介します。 「Python」と組み合わせ ...

続きを見る


初心者がSeleniumを使う理由

requests」ライブラリは「Cookie」や「Header情報」など設定する必要があり、

初心者では実際にスクレイピング・クローリングまで実装できません。

Seleninum」はブラウザを直接使ってWebスクレイピング・クローリングを行います。

ただし「Seleninum」は速度が少々遅いので、より性能が求められる場合は「Scrapy」などを使用しましょう。

Seleniumのインストール

まずはSeleniumのインストールを行います。

pip」を使用してインストールします。

PyCharmを使用している場合は下の記事を参考にインストールしてみてください。

PyCharmにライブラリをインストール・アップデートする手順

こんにちは!シミダイ(@shimidai2100)です。 PyCharmで追加のライブラリを「Python Package Index」などリポジトリからインストールとアップデートする方法を紹介します ...

続きを見る

これでSeleniumのインストールは完了です。

ドライバーの入手とインストール

次にドライバーの入手とインストールをします。

今回は「GoogleChrome用のドライバー」のダウンロード方法を紹介します。

「ダウンロードサイト:ChromeDriver - WebDriver for Chrome」にアクセスします。

ChromeDriver」を選択しましょう。

Google ChromeのSelenium用ドライバーのダウンロードページ

Latest Releseの「ChromeDriver」を選択します。

Google ChromeのSelenium用ドライバーの最新版を選択

各OSに合わせたドライバーをダウンロードしましょう。

Google ChromeのSelenium用ドライバーの各OSのダウンロードページ

Windowsは64Bit版だとしても、「chromedriver_win32.zip」を利用できます。

下がメジャーブラウザのドライバーのダウンロードサイトになります。

ダウンロードしたメディアをOS上の所定の場所に配置します。

今回はメディアを下に配置します。

Selenium用ドライバーのchromedriver.exeの配置先

ログインIDとパスワードを入力する要素を特定

”Yahoo”ログインページ」にログインしてみたいとと思います。

初めにGoogleChromeログインIDとパスワードを入力する要素にどんなセレクタが適用しているか確認します。

GoogleChromeで「https://login.yahoo.co.jp/config/login」で開きましょう。

次にWindowsでは「F12」Macでは「Control + Option + I」で「検証モード」を開きます。

まずは「ログインID」を入力する「nputタグを調べてみましょう。

inputタグのidは「username」となっているのでこちらで指定しましょう。

次へ」buttonのidは「btnNext」ということが分かります。

パスワード」のinputタグは「passwd」ということが分かります。

ログイン」buttonのidは「btnSubmit」ということが分かります。

以上のようにそれぞれの要素をidで指定してPythonに操作させましょう。

id属性が無い場合にはclassなどでも特定することができます。

「selenium」でYahoo Japanにログインする

今回用意したサンプルコードは以下になります。

以下のコードを実行してみましょう。

12行目13行目でログインIDとパスワードを入力します。

29行目36行目で事前に調べたinputタグのidに値を渡しています。

30行目37行目で事前に調べたButtonタグのidに対してクリックしています。

スポンサードリンク

関連記事

-Python, プログラミング

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.