【PHP】PHPで簡単スクレイピング
【PHP】PHPで簡単スクレイピング
PHPで簡単にスクレイピングを始める
環境
- PHP7.1 より上のバージョン
- Goutte - GitHub
パッケージのインストール
composer を利用してインストール
composer require fabpot/goutte
使い方
基本的な使い方は GitHub に記載されています。
アクセス
指定のURLにアクセスする。
<?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'https://www.google.com/');
リンクをクリックする
指定のリンクをクリックする。
<?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 を取得する。
<?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);
ユーザエージェントを変更
ユーザーエージェントを変更します。
<?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;