Ruby/Rubyの基礎知識

RubyによるWebスクレイピング(2): Capybaraで対話的ブラウジング(2ページ目)

Capybaraを利用してウェブを操作・情報を取得する方法を紹介します。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド


Capybaraでログイン

ユーザ名とパスワードを入力して認証する標準的なウェブサイトへログインする例を示します。題材として、Project Eulerを取り上げます。Project Eulerは、数学的題材を扱ったオンラインのプログラミング問題集です。
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
About - Project Euler
pe

トップページ上部のメニューにある「Sign In」をクリックして、ログイン画面を表示します。Capybaraで書くと、

以上のようになります。

CapybaraのデフォルトドライバはRack::Testなので、まずこれをWebkitに切り替えています。その後newしたCapybara::Sessionインスタンスに対して開くページを伝え、click_linkでSign Inボタンをクリックさせています。せっかくなので、save_screenshotメソッドでスクリーンショットを取ってみましょう。

無事ログイン画面が表示されています。

si

他にもHTMLを保存するsave_pageなどデバッグに便利なメソッドが標準でいろいろと用意されています。

さて、それではフォームに値を入力してログインしてみます。ユーザ登録は完了していると仮定して、ユーザとパスワードをフォームに入れて送信するには

のようにします。これでログイン後の画面が表示されます。

l

Capybaraはログインセッションを保持しているので、ログイン後の画面をブラウジングして情報を取得できます。

次のページではログイン後のウェブページから情報を抜き出すいくつかの例を紹介します。

  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます