タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

AmazonLinux 2015.09 に Qt5 WebKit をインストール

まとめ

sudo yum install ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/geoclue-0.11.1.1-0.13.20091026git73b6729.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/NetworkManager-glib-0.8.1-99.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/libsoup-2.34.3-3.el6_6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/gnome-keyring-2.28.2-8.el6_3.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/GConf2-2.28.0-6.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/ORBit2-2.14.17-5.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/polkit-0.96-11.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/ConsoleKit-0.4.1-3.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/ConsoleKit-libs-0.4.1-3.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/polkit-0.96-11.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/ConsoleKit-0.4.1-3.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/polkit-0.96-11.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/eggdbus-0.6-3.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/glib-networking-2.28.6.1-2.2.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/gtk2-2.24.23-6.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/atk-1.30.0-1.el6.x86_64.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/hicolor-icon-theme-0.11-1.1.el6.noarch.rpm \
ftp://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/gdk-pixbuf2-2.24.1-5.el6.x86_64.rpm 
sudo yum install qt5-qtwebkit-devel

はじめに

yumqt5-qtwebkit-develがあったので簡単かと思いきや・・・

$ sudo yum install qt5-qtwebkit-devel
(snip)
--> Finished Dependency Resolution
Error: Package: qt5-qtlocation-5.5.1-2.el6.x86_64 (epel)
           Requires: libgeoclue.so.0()(64bit)
Error: Package: qt5-qtbase-gui-5.5.1-11.el6.x86_64 (epel)
           Requires: libgtk-x11-2.0.so.0()(64bit)
Error: Package: qt5-qtbase-gui-5.5.1-11.el6.x86_64 (epel)
           Requires: libgdk-x11-2.0.so.0()(64bit)
Error: Package: qt5-qtbase-gui-5.5.1-11.el6.x86_64 (epel)
           Requires: libatk-1.0.so.0()(64bit)
Error: Package: qt5-qtbase-gui-5.5.1-11.el6.x86_64 (epel)
           Requires: libgdk_pixbuf-2.0.so.0()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Amazon Linux AMI yum リポジトリには足りないパッケージがあるようで、うまくいきませんでした。

続きを読む

Amazon Linux 2015.09 に capybara-webkit gem をインストールしてRubyでブラウジングする

Installing gems

capybara-webkit gem

gem入れるまでがツラい。→ AmazonLinux 2015.09 に Qt5 WebKit をインストール

sudo ln -s /usr/lib64/qt5/bin/qmake /usr/bin/qmake 
sudo gem install capybara-webkit --no-ri --no-rdoc
Building native extensions.  This could take a while...
Successfully installed capybara-webkit-1.8.0
1 gem installed

headless gem

sudo yum install xorg-x11-server-Xvfb
sudo gem install headless --no-ri --no-rdoc
Fetching: headless-2.2.3.gem (100%)
Successfully installed headless-2.2.3
1 gem installed

RubyでHTMLやスクリーンショットを取得

require 'capybara-webkit'
require 'headless'

Capybara::Webkit.configure do |config|
  config.block_unknown_urls
  config.allow_url('*')
end

client = Capybara::Session.new(:webkit)
headless = Headless.new
headless.start
begin
  client.visit('http://www.google.com/')
  p client.status_code # => 200
  p client.html        # => "<!DOCTYPE html><html itemscope=\"\" itemtype=\"http://schema.org/WebPage\" ...
  client.save_screenshot('screenshot.png')
ensure
  headless.destroy
end

f:id:uzuki05:20160325135757p:plain