Goutte
Goutteというクローラーを使用して、様々なサイトから情報を取得してみます。
これをスクレイピングといいます。
これをスクレイピングといいます。
まずは以下2つをダウンロードします。
スポンサードリンク
基本はphpに以下を記述します。
<?php
require __DIR__.’/goutte.phar’;
use GoutteClient;
// Goutte
$client = new Client();
// ページを取得する
$crawler = $client->request(‘GET’, ‘http://exsample.com’);
?>
(‘GET’, ‘http://exsample.com’);のところに、取得したいURLを記述します。
それから表示したいところに以下を書き込みます。
<?php $crawler->filter(‘.table’)->eq(0)->each(function($sample) {
echo $sample->html();
}); ?>
eq(0)で何番目のtableを取得するのか、フィルターをかけている。
ep(1)にすると「2番めのtableを取得する」、という具合です。
最後のhtml()は「table内のタグごと取得して表示」という意味です。
ここをtext()にすると、テキストのみ取得します。
基本は以上です。
2箇所から取得したい場合。
http://exsample01.comとhttp://exsample02.comの2箇所から取得する例です。
<?php
require __DIR__.’/goutte.phar’;
use GoutteClient;
// Goutte
$client = new Client();
// ページを取得する
$crawler = $client->request(‘GET’, ‘http://exsample01.com’);
?>
<?php
require __DIR__.’/goutte.phar’;
use GoutteClient2;
// Goutte
$client2 = new Client();
// ページを取得する
$crawler2 = $client2->request(‘GET’, ‘http://exsample02.com’);
?>
<?php $crawler->filter(‘.table’)->eq(0)->each(function($sample) {
echo $sample->html();
}); ?>
<?php $crawler2->filter(‘.table’)->eq(0)->each(function($sample2) {
echo $sample2->html();
}); ?>
各変数名を変えるだけです。これで様々なサイトを削り取りましょう!