タグ「phantomjs」での検索

ヘッドレスブラウザ(phantomJS, slimerJS )でWEBサイトをスクレイピングする

ヘッドレスブラウザ

● phantomJS

WebKit(Safari) ベースのヘッドレス(画面なし)ブラウザ

・phantomJSのインストール方法(Mac)

brew install phantomjs

・phantomJSのインストール方法(CentOS7)

yum -y install freetype
yum -y install fontconfig
npm install -g phantomjs

● slimerJS

Gecko(firefox) ベースのヘッドレス(画面なし)ブラウザ

・slimerJSのインストール方法(Mac)

brew install slimerjs

・slimerJSのインストール方法(CentOS7)

npm install -g slimerjs

● casperJS

ヘッドレスブラウザを簡単に扱うライブラリ(JavaScript)です。 このcasperJSから「phantomJS」または「slimerJS」を操作します。

・casperJSのインストール方法(Mac)

brew install casperjs

・casperJSのインストール方法(CentOS7)

yum -y install freetype
yum -y install fontconfig
npm install -g casperjs

● casperJSからブラウザを操作して画面のスクリーンショットを撮る

```
var AnchorArrays = [];
var casper = require('casper').create();
casper.start('http://flatsystems.net/kakunin.php', function() {
});
casper.then(function() {
    this.capture('kakunin.png');
});
casper.run();
```

###● casperJSからphantomJSで起動する
```
casperjs  test.js
```

###● casperJSからslimerJSで起動する
```
casperjs  --engine=slimerjs test.js
```
slimerJSで起動するときは ```--engine=slimerjs``` を追加します。


###● casperJSコードを実際のブラウザソースから生成する Chrome拡張機能
#####・Resurrectio
https://chrome.google.com/webstore/detail/resurrectio/kicncbplfjgjlliddogifpohdhkbjogm

No.1067
12/17 23:31

edit

スクレイピング
xpath
slimerjs
phantomjs

ブラウザ slimerjs(firefox)の使い方

slimerjs のインストール

Mac OSX の場合は brew でインストールできます

brew install slimerjs

slimerjs のバージョンを確認する

インストールが完了したらバージョンを確認しておきます

slimerjs -v

slimerjs でWEBページのスクリーンショットを撮る

```
var page = require("webpage").create();
page.open('http://zozo.jp/')
    .then(function(status){
        if(status === 'success'){
            console.log(page.title);
            page.render('test.png');
        }
        phantom.exit();
    });
```
実行します
```
slimerjs test.js
```


# slimerjs をCUI環境で実行させる
slimerjsはGUI環境下でないと動作しません。
CUIで実行すると
```
slimerjs --debug=true XXXXX.js 
```
```
Error: no display specified
```
というエラーになります。

そこで  CUI でも実行できるように Xvfb( X virtual framebuffer ) をインストールします。

```
yum -y install xorg-x11-server-Xvfb
```
    
Xvfbの使い方は 実行したい処理の前に ```xvfb-run``` を付け加えます
```
Xvfb slimerjs --debug=true XXXXX.js 
```
これでCUI下の環境でも実行できます。


No.1063
12/17 22:34

edit

phantomjs
slimerjs

Herokuでphantomjsを使う

Heroku上でヘッドレスWEBブラウザ phantom.js を使用するにはビルドパックを追加します。 ビルドパックをGithub上で公開してくれている方がいるのでありがたく利用させていただきます。

● heroku-buildpack-phantomjs

https://github.com/stomita/heroku-buildpack-phantomjs

ターミナルから以下を実行

cd "アプリのあるディレクトリ"
heroku login
heroku buildpacks:add --index 1 https://github.com/stomita/heroku-buildpack-phantomjs
git push heroku master

● phantomjs がHeroku上にあるか確認する

heroku run phantomjs -v

バージョンが帰ってくればOK

● Heroku上のphantomjsから他のWEBサイトにアクセスできるか確認する

・1.アプリのあるディレクトリに `phantom_test.js` ファイルを以下の内容で作成します。

var page = require('webpage').create();
page.open('http://yahoo.co.jp/', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('example.png');
  }
  phantom.exit();
});

・2.Heroku上に再デプロイします。

git add .
git commit -m "add buildpack"
git push heroku master

・3.phantomjsでスクリプトを実行します。

heroku run phantomjs phantom_test.js

「Status: success」が帰ってくればOK

● 日本語フォントを追加して文字化けを解消する

フォントは `./fonts` ディレクトリに .ttf フォントファイルを置いて git push すればOKです。
フォントファイルは著作権に注意して使用しましょう

・フリーの日本語フォントファイル Google Noto Sans

https://www.google.com/get/noto/#sans-jpan

・Heroku上の日本語フォントが正しく認識されているか確認する

heroku run fc-match sans:lang=ja
No.1061
12/17 17:33

edit

Heroku
phantomjs