Cakephp2.0で、PhantomJs
Cakephp 2.0のConsole/Commandで、スクレイピングを行う処理を実装しようとしています。
PhantomJsを使おうとしていますがどうもうまくいきません。
composerを利用してPhantomJsを、
/XAMPP/xamppfiles/htdocs/cakephp/app/Vendor
にインストールしました。
”/XAMPP/xamppfiles/htdocs/cakephp/app/”
に
test.phpとして、
<?PHP
require_once('vendor/autoload.php' );
use JonnyW\PhantomJs\Client;
$client = Client::getInstance();
$client->getEngine()->setPath('vendor/bin/phantomjs');
$request = $client->getMessageFactory()->createRequest();
$response = $client->getMessageFactory()->createResponse();
$request->setMethod('GET');
$request->setUrl('https://pg.kdtk.net/sample/phamtomjs_test.html');
$client->send($request, $response);
echo "request url: " . $request->getUrl() . "\n";
echo "response: " . $response->getStatus() . "\n";
if($response->getStatus() === 200) {
echo "content: \n";
echo $response->getContent();
}
?>
というサンプルプログラムを実行するとうまくいきました。
これを、Console/Commandで実装したいのですが、どのように実装したら良いかわかりません。
例えば
/XAMPP/xamppfiles/htdocs/cakephp/app/Console/Command
に、
SampleShell.php
として保存し、
<?php
class SampleShell extends AppShell {
public function startup()
{
parent::startup();
App::import('Vendor', 'Client', array('file' => 'JonnyW/PhantomJs/Client.php'));
}
// メイン実行関数
public function main() {
$client = Client::getInstance();
}
}
?>
php cake.php Sample
を実装すると、
PHP Fatal error: Class 'Client' not found ・・・
とエラーとなります。
インスタンスを生成できるようにするにはどのようにすれば良いのでしょうか?
ご教示いただきますよう、何卒宜しくお願い申し上げます。