Ruby の Headless Chrome 実装である Ferrum gem を触ってみました

Ferrum とは

こちらの gem です。Ferrum とは「フェルム」のこと、すなわち「鉄」のことです*1

github.com

特徴

「Puppetrer のような、ただ、Puppeteer よりもシンプルな」、Chrome の API を提供する gem とのことです。

As simple as Puppeteer, though even simpler.

使い方

使い方はドキュメントを読めばつまづくところは無いと思います。

1. 適当なディレクトリを作って移動し、gem をインストールする

適当にディレクトリを作ってそこで作業をします。

$ mkdir my_ferrum && cd my_ferrum

gem をインストールするには $ gem install ferrum を実行してインストールする方法と、Gemfilegem 'ferrum' と記述して $ bundle install する方法があります。ここでは前者を採るものとします。

$ gem install ferrum

2. コードを書く

サンプルコードをそのまま書きます。require を忘れないようにします。

require 'ferrum'

browser = Ferrum::Browser.new
browser.goto("https://google.com")
browser.screenshot(path: "google.png")
browser.quit

このコードを app.rb として保存し、実行します。すると、同じディレクトリに google.png が生成されています。これは https://google.com のページのスクリーンショットの画像ファイルです。

$ ruby app.rb

f:id:gregminster:20200211161445p:plain

補足

使用するためには Chrome か Chromium がインストールされている必要があります。Puppeteer の場合は一緒に入れてくれますが*2、Ferrum では自前で入れておく必要があります。もちろんその分、Ferrum の方は容量が少なくなります。

There's no official Chrome or Chromium package for Linux don't install it this way because it either will be outdated or unofficial, both are bad. Download it from official source. Chrome binary should be in the PATH or BROWSER_PATH or you can pass it as an option to browser instance :browser_path.

*1:元素記号の Fe です

*2:入れないようにするオプションもあります

Powered by はてなブログ