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:入れないようにするオプションもあります

VS Code で TypeScript を書く際に import 文 を使うと from で指定した値に波線が引かれて「モジュール...が見つかりません」と出る場合の対処方法

現象

f:id:gregminster:20200202164328p:plain

どうするか

適切な型定義ファイルをインストールします。上記例の場合は puppeteer の型定義ファイルである @types/puppeteer をインストールします*1

$ npm install --save-dev @types/puppeteer

または

$ yarn add --dev @types/puppeteer

これで、波線が消えます。

補足

from で指定した値(ファイル)が CSS や 画像ファイル のときの現象は以下の Issue に挙がっています。

github.com

*1:TypeScriptのコンパイルはローカルで行うでしょうから、--save-dev や --dev オプションを付けてインストールしています

KONAMI がゲームのキャラクターへのバレンタインメッセージを募集中

KONAMI サポート の公式 Twitter にて、ゲームのキャラへのバレンタインメッセージを募集している旨がツイートされました。

Twitter でハッシュタグをつけてツイートすることでメッセージを送ることができます。また、メールフォームから送ることもできます。

メールフォームからバレンタインメッセージを送る方法

ただ、メールフォームから送る方法は分かりづらいです。「お問い合わせのメール」を用いてバレンタインメッセージを送るというのがもう無理があるのですが、公式 Twitter でそのようにツイートされてますので、それに従います。

1.

まず、「お問合せフォームリンク」のページに行きます。

ja-support.konami.com

2.

そのページで「■上記以外の商品・サービスについてのお問い合わせ」をクリックします。サポートポリシーが出てきますので、よく読んで同意します。

3.

すると「メールによるサポートをご希望の方」のページに行きます。

4.

「商品タイトル」などを埋めて、メッセージを送ります。メールアドレスが必須なのが敷居高いですね……*1

追記 (2020/02/14)

送りました。

f:id:gregminster:20200214005317j:plain

*1:公開されないでしょうが

Gyazo を Ruby を用いて API 経由で扱う方法

Gyazo には API が用意されているので、アプリケーション経由で画像を取り扱うことができます。

1. アプリケーションを登録する

まずはアプリケーション登録をするために、登録ページに行きます。

gyazo.com

以下のようにしてアプリケーションを登録し、client_idclient_secretYour access token を取得しましょう。

f:id:gregminster:20200202163130j:plain

2. Gyazo の gem を用いて Ruby 経由で Gyazo を扱う

Gyazo の gem を用いることで、Ruby 経由で Gyazo を取り扱えます。ドキュメントが全てすぎるので、とにかくドキュメントを読みましょう。特に詰まるところはないと思います。

github.com

ごく簡単な手順は以下のとおりです。

2-1. gyazo の gem をインストールする

2-2. 利用する Ruby のコードにおいて require する

2-3. 1. で取得した Your access token を設定することで、Gyazo を利用するためのクライアントのオブジェクトを作成する

2-4. 希望の動作のコードを書いて、実行する

備考

画像や動画は Gyazo に一任して分離することで、ブログの自動投稿 や チャットbot などのアプリを作るときに小回りが効いて素早い開発が可能になると思います。

はてなブログ API 用の gem である "Hatenablog" を使ってみました

"Hatenablog" とは

"Hatenablog" とは、はてなブログ API 用の gem です。

github.com

使い方

使い方は、作者の方の記事を読めばほぼ分かるかと思います。

blog.kymmt.com

併せて README を読むとよいでしょう。

github.com

使い方詳細

実際に使ってみました。

続きを読む
Powered by はてなブログ