Copy & Paste Engineer

【PHP】PHPで簡単スクレイピング

【PHP】PHPで簡単スクレイピング

PHPで簡単にスクレイピングを始める

環境

パッケージのインストール

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;

参考情報