楽しいよ、Webスクレイピング。
色んなライブラリを試したけれど、おまるくんは最終的に PHP + Goutte とか、PhantomJS とかに落ち着きました。
Composerの用意
Goutte最新版はPHP5.5以上が必要です。
Composerでインストールなので、Composerがなければまずこちらを手に入れるところから。
1 2 3 4 5 6 7 8 9 10 |
#Composerのダウンロード $ curl -sS https://getcomposer.org/installer | php All settings correct for using Composer Downloading 1.2.0... Composer successfully installed to: ... /composer.phar Use it: php composer.phar #/usr/local/bin に移動 $ mv composer.phar /usr/local/bin/composer |
Windowsならインストーラーがあります。
このあたりを参考に簡単インストールしちゃいましょう。
本連載では、Composerを使ったパッケージ管理を紹介します。PHPではデフォルトでインストールされているPEARがありますが、最近では、Composerというパッケージ管理ツールも使われつつあります。例えば、JavaなどではMavenのようなツールでパッケージ管理をしたり、Rubyではbundlerといったパッケ...
Goutteのインストール
コマンドラインでGoutteをくれくれするだけの簡単インストール!
あっという間にインストールが終わります。
1 2 3 4 5 6 7 8 9 10 11 12 |
#Goutte インストール $ composer require fabpot/goutte Using version ^3.1 for fabpot/goutte ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) - Installing guzzlehttp/promises (1.2.0) Loading from cache ... symfony/browser-kit suggests installing symfony/process () Writing lock file Generating autoload files |
実際に使ってみる
ライブラリの利用は、インストールしたパッケージの /vendor/autoload.php を requireするだけでOKです。
まずは事始めとして、この記事のタイトルを取得してみることにします。
1 2 3 4 5 6 7 |
<?php require_once (dirname(__FILE__) . '/vendor/autoload.php'); $client = new Goutte\Client(); $crawler = $client->request('GET', 'http://note.omarukun.com/notes/5/'); echo trim($crawler->filter('h1')->text()) . "\n"; |
1 2 |
$ php gogogoutte.php PHPでWebスクレイピングなライブラリ、Goutteのインストール |
ほら、取得できた!
$client->request() で取得しているのは
filter(‘h1’) あたりでピンときて、リファレンスを読むだけでなんとなくなイメージが沸いてくる子にはうってつけ。
CSSセレクタに慣れているととても使い勝手のいいライブラリです。
コメント
Imagínese una manguera con una obstrucción a medio camino, no importa cuan fuerte sea la presión del agua, siempre saldrá poca por la salida. Esto hace que la sangre fluya con dificultad a todas las partes del cuerpo, especialmente al pene.