JavaScriptを有効にしてください

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

 ·  ☕ 1 分で読めます

【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;

参考情報

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer