Goutte
PHP
Goutte(ゲットと発音するらしい)は、PHP でいわゆるスクレイピングするためのパッケージです。
インストール
Composer を使ってインストール可能なので、とても楽ちんです( ̄ー ̄)
% composer require fabpot/goutte
だけでOKです( ̄ー ̄)
使用方法
以下のような感じです。
autoloader.php を読み込みつつ、Goutte\Client を use し、あとはインスタンスを作ったら request() で HTTP リクエストを投げるような手順ですね。
require_once '../vendor/autoload.php'; use Goutte\Client; $client = new Client(); $cw = $client->request('GET', 'http:/xxxx.com/xxx.html'); $a = $cw->html();
とても簡単ですね。
GET だけでなく、以下のように POST ももちろん可能です。
$cw = $client->request('POST', 'http:/xxxx.com/xxx', array('param1' => 'test'));
また、上記では単に HTML 形式で取得した内容を $a に格納していますが、この部分はフィルターをかけたりいろいろと出来るようです。
ある程度のパース処理は Goutte の方で装備されているので、特定のタグの内容を取得するレベルであれば簡単に書けます。
なかなかよく出来ていますね~
日本語対応
詳しいところまでは追っていないのですが、UTF-8 についてはきちんと対応できているように思えます。
ただ、そのままだと HTML エンコードされた状態でコンテンツが取得されるようなので、PHP コード内で処理するには以下のようにデコードする必要があるようです。
$b = html_entity_decode($a, ENT_QUOTES, 'UTF-8');
ただ、、、、UTF-8 は今のところ上記で問題ないのですが、Shift-JIS のページだと問題が起きます。
具体的には、、、一部のみ文字化けが発生します。
ということで、、、自分的には Goutte を使うのはまだ時期尚早かな~という印象です。
使いやすいので限定的には使えると思いますが、小回りを利かせる必要があるのであれば、Perl の WWW::Mechanize を使う方がいいかな、と思いました。