RubyでスクレイピングとWebサーバーを開発する手順を書いていきます。
# パッケージマネージャーのインストール
$ gem install bundler
# プロジェクトの作成
$ mkdir scraping_server
$ cd scraping_server
$ bundler init
# パッケージの追加
$ bundle add sinatra mechanize
インストールしている外部パッケージは以下のものです。
まず、main.rb を以下の内容で作成します。
require "sinatra"
set :port, 3000
get "/" do
"test"
end
その後、以下コマンドを実行して http://localhost:3000 にブラウザでアクセスすると、”test” の文字が表示されます。
$ ruby main.rb
これで、Webサーバーの起動ができました。
スクレイピングで取得した情報を表示する main.rb に以下の実装を追加します。
require "sinatra"
# パッケージを追加
require 'mechanize'
# 関数を追加
def scraping
agent = Mechanize.new
page = agent.get('https://en.wikipedia.org/wiki/List_of_programming_languages')
page.search('.div-col li').map do |el|
el.inner_text
end
end
set :port, 3000
get "/" do
# 追加した関数を呼び出す
scraping.to_json
end
追加実装の後、 $ ruby main.rb
を再実行して http://localhost:3000 にアクセスすると、
Wikipediaのページから取得したプログラミング言語一覧の文字が表示されるようになります。