TinkerBoard+Armbian Stretch+chromedriver インストール手順

apt install chromium chromium-driver

とかして最新版でインスコすると

chromium = 70
chromedriver = 2.41

という動かない組み合わせになっちゃって、全然動かない組み合わせになる。
http://chromedriver.chromium.org/downloads

TinkerBoard+Armbian Stretchでインスコできるchromiumとchromedriverの組み合わせを調査した所、

chromium = 67
chromedriver = 2.40

なら動くことがわかったのでその方法を書いておく。

1.まず chromium、chromium-driver両方消す

apt remove chromium
apt remove chromium-driver

 

2.chromium=69、chromedriver=2.40をインストール

apt install chromium=69.0.3497.92-1~deb9u1
apt install chromium-driver=69.0.3497.92-1~deb9u1

するとこうなるはず。

root@tinkerboard:~# chromium --version && chromedriver --version
Chromium 69.0.3497.92 built on Debian 9.5, running on Debian 9.6
ChromeDriver 2.40

 

3.chromedriver=2.40をコピー。

cp /usr/bin/chromedriver /root/chromedriver240

 

4.chromium を 67 にダウングレード。一緒に chromedriver が消えるはず。

apt install chromium=69.0.3497.93-1~deb9u1

※バージョン指定が 69.0.3497.93-1~deb9u1 になってるけど、これで 67 が入ります。
 

5.chromedriver=2.40を配置し直す

cp /root/chromedriver240 /usr/bin/chromedriver

するとこうなるはず。

root@tinkerboard:~# chromium --version && chromedriver --version
Chromium 67.0.3396.87 built on Debian 9.4, running on Debian 9.6
ChromeDriver 2.40

 

6.日本語フォントも入れておく。これやんないとchromiumの日本語表示が変になる。

wget --content-disposition IPAfont00303.zip http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php
unzip IPAfont00303.zip -d /usr/share/fonts/
fc-cache -fv

(参考:https://qiita.com/thoriums/items/4b915677e1d4e9e21ca2
 

7.動作確認。適当なphpを作って動作確認をする。

composer で facebook/webdriver を入れてから、
適当なphpを作って実行。

<?php
# my name is test.php

require_once dirname(__FILE__) . '/phplib/vendor/autoload.php';


use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\Chrome\ChromeDriver;
use Facebook\WebDriver\Chrome\ChromeDriverService;


//chromedriverを起動
$port    = 9515;
$service = new ChromeDriverService('/usr/bin/chromedriver', $port, array('--port=' . $port));

//chromedriver経由でchromiumを起動
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability("chromeOptions", array("args" => array("--headless" , "--no-sandbox" , "--window-size=1920,1080")));
$driver = ChromeDriver::start($capabilities, $service);

//yahoo.co.jpを開く
print "open yahoo.\n";
$driver->get('https://www.yahoo.co.jp/');

//左柱のヤフオク!をクリックする。
print "click yahuoku.\n";
$driver->findElement(WebDriverBy::linkText('ヤフオク!'))->click();

//スクショを保存
print "save screenshot.\n";
$driver->takeScreenshot(dirname(__FILE__) . '/' . date('Ymd_His_') . getmypid() . '_' . mt_rand(10000, 99999) . '.png');

//chromium +chromedriverを終了する。
$driver->close();
print "exit.\n";



うまくいくと

root@tinkerboard:~# php /var/www/html/test.php
open yahoo.
click yahuoku.
save screenshot.
exit.

な感じになる。phpと同じディレクトリにヤフオクのスクショがpngで保存されているはずなので確認する。
 
これで環境構築は終わったので、あとは好きにクローラーを書いて必要な情報をぶっこ抜けばいいと思いました。

TinkerBoardは32bitCPUなので公式chromedriverのコピペが出来ないのがきつい。
環境構築だけならRaspberry Pi 3の方が楽なんじゃねーのか?とか思ったけど、
あっちはメモリー1GBしかないしなー。足りぬ。

まともなメーカーでメモリー潤沢で64bitCPUの
シングルボードコンピューター無いかなあ?
無理にシングルボードコンピューターに拘らずに、
小型PC買ってサーバーにしたほうが良さげかも。

ではでは

未分類

Posted by namahage