Python

PythonとSeleniumでスクレイピング中のログイン自動化

【Python】Seleniumでスクレイピング中に自動ログイン

今日もPythonでスクレイピングして圧倒的に効率化してますか?

トラハック
トラハック
Pythonでスクレイピングのプログラムを書いたけど、ログイン処理が必要でスクレイピングを先に進められない!

この記事では以下について解説します。

この記事で解説すること
  • Pythonのスクレイピング で自動ログインする方法
  • スクレイピングに必須のSeleniumとHeadless Chromeのインストール方法
  • Twitterに自動ログインするサンプルコード

私はプログラミング初心者だったものの、Pythonを1年独学してきて様々なスクレイピングや機械学習のプログラムを作ってきました。なので初心者の方にもなるべく分かりやすく解説していきます。

私がこれまで作成したプログラム
  • webサイトの情報を収集してGoogleカレンダーに自動登録するbot
  • 通貨の売買量(動的なデータ)を基に仮想通貨FXを自動取引するbot
  • 機械学習を用いて画像を自動生成するプログラム(例:馬の画像→シマウマの画像を生成)

私がプログラミング初心者からPythonを独学で身につけた学習方法についてまとめた記事はコチラ。

プログラミング初心者でも挫折せず1年間独学した方法【動画教材がおすすめ!】
プログラミング初心者でも挫折せず1年間独学した方法【動画教材がおすすめ!】独学でプログラミングを学び始めた方は、こんな悩みを抱えていませんか? 本記事では、独学を始めたばかりのプログラミング初心者...

ちなみに今回SeleniumというPythonのスクレイピング用モジュールを使って作成した自動ログインスクリプトはこのような動きをします。

 

過去記事で、スクレイピングをSEOライティングに活かす方法についても語っています

Pythonのスクレイピングで変えるSEOライティング【初級編】
Pythonのスクレイピングで変えるSEOライティング【初級編】SEOを意識しながらライティングしている方は、こんな悩みを抱えていませんか? キーワード選定や市場調査は時間のかかる作業なので、で...

それでは本題に入ります。

Pythonによるスクレイピングでログインを自動化する方法【SeleniumとHeadless Chromeを使えばOK】

Pythonによるスクレイピングで自動ログインする方法

スクレイピングではwebページから情報を抽出するだけでなく、ログインのように情報入力が必要なケースもありますよね。

Pythonのスクレイピングで自動ログインするには、Selenium + Headless Chromeがオススメです。Seleniumは初心者にも扱いやすく、Headless Chromeはバックエンド(私たちが見えないところ)で動いてくれて自動化プログラムに適しているからです。

後はログインが必要なwebページのアカウント名とパスワードを入力するHTML情報が分かれば、自動ログインは可能になります。

Pythonでログインを自動化する手順①|SeleniumとHeadless Chormeをインストールする

SeleniumとHeadless Chromeはpipから簡単にインストール可能です。Homebrewを使っている方はHeadless Chromeをbrewコマンドでもインストールできます。

pip install selenium
pip install chromedriver

# Homebrewを使っている方
brew install chromedriver

たったこれだけ!簡単ですね。

Pythonでログインを自動化する手順②|Google Chrome Canaryをインストールする

Google Chrome Canary(以下、Canary)はChromeの開発版であり、通常版よりも新しい機能が毎日更新されるChromeブラウザです。Headless Chromeを使うためにCanaryをインストールしましょう。

Google Chrome Canaryのダウンロードページへ

リンク先ページで[CHROME CANARYをダウンロード]を押します。

Google Chrome Canaryをインストールする

Macの場合、ダウンロードしたdmgファイルを展開してインストールします。

インストール後はApplicationsフォルダに移動させておきましょう。
※Applicationsフォルダに移動させないと後から紹介するサンプルコードは動きません!

Pythonでログインを自動化する手順③|webページを解析してセレクターを見つける【実は簡単】

ログインが必要なwebページのインプット先となるHTMLを見つけるにはブラウザの検証モードを使いましょう

検証モードを使うと簡単に対象のHTMLを見つけられますし、コピー機能でHTML情報を簡単に取得することができるからです。

後でサンプルコードを紹介するTwitterのログインに必要なインプット先を見つけてみましょう。

検証モードの起動にはブラウザ上でF12を押してください。別ウィンドウとして表示させた方が見やすいです。

ユーザー名(メールアドレス)の入力ボックスはこのHTMLに記載されていました。

webページを解析してインプット先のHTMLを見つける

ここでHTML情報を取得します。XPathやCSS Selectorなどが取得可能です。私はXPath派なのでXPathの取得例を掲載します。

対象のHTMLを右クリックして[Copy] > [Copy XPath]を選択してください。

スクレイピングに使うXPathをコピーする

残りはパスワードの入力ボックスとログインボタンのHTML情報を取得しておきます。

password login-button

以上でスクレイピングの準備が整いました!

PythonのスクレイピングでTwitterへのログインを自動化する【サンプルコード付き

PythonによるスクレイピングでTwitterに自動ログインするサンプルコード

PythonでTwitterへのログインを自動化するためのスクレイピング用サンプルコードと、その簡単な解説をします。

PythonでTwitterへのログインを自動化するサンプルコード【コピペOK】

トラハック
トラハック
コピペした後、あなたの環境に応じていくつかの値を修正してね!

13~14行目はHeadless Chromeを使うためのオプションです。ブラウザが起動することを目視で確認するためには13~14行目をコメントアウトしてください。

23行目と25行目にはあなたのTwitterアカウント情報を入力してください。

28,30,37行目は先ほど取得したXPathを設定しましょう。find_element_by_xpath()というwebdriverのメソッドでXPathの指定が可能です。

ブラウザの検証モードからコピーしたXPathのクオーテーションに気をつけましょう。
”//*[id=xxxx]~”は”//*[id=xxxx]~”とシングルクオーテーションに書き換えておきます。
外側のダブルクオーテーションがXPath内のダブルクオーテーションで区切られてしまうからです。

以上、サンプルコードの解説でした。

トラハック
トラハック
Twitterに自動ログインできれば、自動ツイートなども実装できますね!

Pythonでログインを自動化できたら…次のステップへ!

スクレイピングの用途は無限大ですね~
特にPythonは簡単にプログラムを作成できて良いです

トラハック
トラハック
スクレイピングはめっちゃくちゃ面白いです!ハッカーになった気分になれますよ(笑)

機械学習のようなAIによる自動化の需要は伸びると思いますが、手軽にいろいろな作業を自動化できるスクレイピングの需要は今も高いですよ

需要があるうちに、サクッと身につけてみてはいかがでしょうか。

【送料無料】 PythonによるWebスクレイピング 第2版 / Ryan Mitchell 【本】

Pythonクローリング&スクレイピング データ収集・解析のための実践開発ガイド/加藤耕太

この記事のまとめ
  • PythonでスクレイピングするならSelenium + Headless Chrome
  • ブラウザの検証モードで簡単にHTMLを見つける
  • スクレイピングの可能性は無限大

ミックスナッツ安い