Headless Chrome で簡単にスクレイピングできる Kimurai を Heroku で使用する方法です。
2019/11/4 現在の情報となります。
プロジェクトのディレクトリでコマンドを入力します。
heroku buildpacks:add heroku/ruby heroku buildpacks:add https://github.com/heroku/heroku-buildpack-google-chrome heroku buildpacks:add https://github.com/heroku/heroku-buildpack-chromedriver heroku buildpacks:add --index 1 heroku-community/apt heroku config:set SELENIUM_CHROME_PATH=/app/.apt/usr/bin/google-chrome heroku config:set CHROMEDRIVER_PATH=/app/.chromedriver/bin/chromedriver
Gemfile
source 'https://rubygems.org' gem 'kimurai'
spider.rb
require 'bundler' Bundler.require Kimurai.configure do |config| config.selenium_chrome_path = ENV['SELENIUM_CHROME_PATH'].presence config.chromedriver_path = ENV['CHROMEDRIVER_PATH'].presence end class Spider < Kimurai::Base @engine = :selenium_chrome @start_urls = ['http://example.com'] def parse(response, url:, data: {}) p response.at('h1').text end end Spider.crawl!
Aptfile
lsof
lsof
が kimurai 内部で使用されているため、追加する必要があります。