[PHP]Goutteを使ってWebサイトのタイトルを取得する(動作確認を兼ねたインストール手順の説明)

カテゴリ: PHP | タグ: ,

今回は、PHPのスクレイピングライブラリであるGoutteを使用して、指定したURLに対するWebページのタイトルを取得してみます。

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

Goutteパッケージはcoposerのfabpot/goutteパッケージとして提供されています。

composerをインストールしたうえで、下記のコマンドでライブラリを取得できます。

$ composer require  fabpot/goutte

パッケージの取得後に、composer showでバージョンを確認すると、本記事を書いている時点ではver3.2.2でした。goutteは内部でguzzlehttpパッケージなどを使用しているため、依存パッケージも一緒に取得されています。

$ composer show

fabpot/goutte             v3.2.2 A simple PHP Web Scraper
guzzlehttp/guzzle         6.3.0  Guzzle is a PHP HTTP client library
guzzlehttp/promises       v1.3.1 Guzzle promises library
guzzlehttp/psr7           1.4.2  PSR-7 message implementation that also provides common utility methods
psr/http-message          1.0.1  Common interface for HTTP messages
symfony/browser-kit       v4.0.2 Symfony BrowserKit Component
symfony/css-selector      v4.0.2 Symfony CssSelector Component
symfony/dom-crawler       v4.0.2 Symfony DomCrawler Component
symfony/polyfill-mbstring v1.6.0 Symfony polyfill for the Mbstring extension

スクレイピングするphpプログラムを書く

composerでパッケージを取得したら、以下のような形でGoutteを使用したphpスクリプトを作成します。

<?php
require_once("vendor/autoload.php");

use Goutte\Client;

// 指定されたページへアクセスする
$url = "http://yahoo.co.jp/";
$client = new Client();
$crawler = $client->request('GET', $url);

// アクセス結果からタイトルタグのテキストを取得
$titleNode = $crawler->filter('title');
$title = $titleNode->text();

// 取得したタイトルを出力
echo( $title . PHP_EOL );

このプログラムをtests.phpとして保存し、phpコマンドで実行すると、以下のようにタイトルが出力されました。

$ php test.php

Yahoo! JAPAN

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です