【PHP】PHPで簡単スクレイピング
PHPで簡単にスクレイピングを始める
環境
パッケージのインストール
composer
を利用してインストール
1
| composer require fabpot/goutte
|
使い方
基本的な使い方は GitHub に記載されています。
アクセス
指定のURLにアクセスする。
1
2
3
4
5
6
7
8
| <?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.google.com/');
|
リンクをクリックする
指定のリンクをクリックする。
1
2
3
4
5
6
7
8
9
10
| <?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://ja.wikipedia.org/');
$link = $crawler->selectLink('ウィキペディア')->link();
$crawler = $client->click($link);
var_dump($crawler);
|
属性を取得
画像の src
を取得する。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.google.com/');
// 画像保存用変数
$images = [];
// 画像を取得
$crawler->filter('img')->each(function ($node) use (&$images) {
// 画像のSRCを取得
$images[] = $node->filter('img')->attr("src");
});
var_dump($images);
|
ユーザエージェントを変更
ユーザーエージェントを変更します。
1
2
3
4
5
6
7
8
9
10
11
| <?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
// ユーザーエージェントを設定
$client->setServerParameter('HTTP_USER_AGENT', 'test');
$crawler = $client->request('GET', 'https://www.ugtop.com/spill.shtml');
var_dump($crawler);
exit;
|
参考情報