2018年11月21日こんにちは!シミダイ(@shimidai2100)です。「Python」とWebテストツールとして有名な「Selenium」を使用して、ログインが必要なWebページのスクレイピング・クローリングを行う手順を紹介します。最近のログインが必要ページは「メールアドレス」、「パスワード」以外にも、「Cookie」や「ハッシュ値」などの情報も裏ではログイン時に送っています。アプローチ方法として「requests」ライブラリや「Scrapy」がありますが、どちらも学習コストが高く簡単には使いこなせません。そのため、初心者でも簡単に扱うことが出来る「Selenium」が大変オススメになります。Chrome」ドライバーを使用したWebページのスクレイピング・クローリングを行っていきます。「Selenium」の扱い方については以下の記事にもまとめていますので参考にしてみてください。[初心者向け]こんにちは!シミダイ(@shimidai2100)です。初心者では実際にスクレイピング・クローリングまで実装できません。「Seleninum」はブラウザを直接使ってWebスクレイピング・クローリングを行います。「Seleninum」は速度が少々遅いので、より性能が求められる場合は「Scrapy」などを使用しましょう。SeleniumのインストールまずはSeleniumのインストールを行います。「pip」を使用してインストールします。seleniumPyCharmを使用している場合は下の記事を参考にインストールしてみてください。PyCharmにライブラリをインストール・アップデートする手順こんにちは!シミダイ(@shimidai2100)です。...続きを見るこれでSeleniumのインストールは完了です。ドライバーの入手とインストール次にドライバーの入手とインストールをします。今回は「GoogleChrome用のドライバー」のダウンロード方法を紹介します。Chrome」にアクセスします。「ChromeDriver」を選択しましょう。Releseの「ChromeDriver」を選択します。各OSに合わせたドライバーをダウンロードしましょう。Windowsは64Bit版だとしても、「chromedriver_win32.zip」を利用できます。下がメジャーブラウザのドライバーのダウンロードサイトになります。Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/Opera:https://github.com/operasoftware/operachromiumdriver/releasesダウンロードしたメディアをOS上の所定の場所に配置します。今回はメディアを下に配置します。「”Yahoo”ログインページ」にログインしてみたいとと思います。初めにGoogleChromeでログインIDとパスワードを入力する要素にどんなセレクタが適用しているか確認します。GoogleChromeで「https://login.yahoo.co.jp/config/login」で開きましょう。I」で「検証モード」を開きます。「ログインID」を入力する「nputタグを調べてみましょう。inputタグのidは「username」となっているのでこちらで指定しましょう。「次へ」buttonのidは「btnNext」ということが分かります。「パスワード」のinputタグは「passwd」ということが分かります。「ログイン」buttonのidは「btnSubmit」ということが分かります。以上のようにそれぞれの要素をidで指定してPythonに操作させましょう。id属性が無い場合にはclassなどでも特定することができます。Japanにログインする今回用意したサンプルコードは以下になります。以下のコードを実行してみましょう。ヘッドレスモードの設定。ブラウザを描写しない。ヘッドレスモードの設定。ブラウザを描写しない。ドライバーをクローズdriver.close()driver.quit()12行目と13行目でログインIDとパスワードを入力します。29行目と36行目で事前に調べたinputタグのidに値を渡しています。30行目と37行目で事前に調べたButtonタグのidに対してクリックしています。