Laravel8 スクレイピングをする方法

Goutteをインストール

composer require weidner/goutte

config/app.phpを編集

    'providers' => [
            ・
            ・
            ・
        Weidner\Goutte\GoutteServiceProvider::class,    // 追記
    ],
    'aliases' => [
            ・
            ・
            ・
        'Goutte' => Weidner\Goutte\GoutteFacade::class,    // 追記
    ],

使用することを宣言

use Goutte;

ページを取得

$page = Goutte::request('GET', 'URL');

例)
$url = "https://yahoo.co.jp";
$page = Goutte::request('GET', $url);

スクレイピング

$selector = $page->filter('対象のCSSセレクター');

例)
$selector = $page->filter('#content > div > h1');

‘対象のCSSセレクター’の抽出方法

例)広島県の最高気温を取得する場合

1.対象のページを開き「F12」キーを押下して開発者ツールを表示する。

2.開発者ツールの「矢印」を押下する。

3.取得したい項目にカーソルを合わせる。

4.開発者ツールの対象エレメントで、右クリック -> 「Copy」 -> 「Copy selector」でコピーしたものを、
$name = $page->filter(‘map > ul > li.point.pt6710 > a > dl > dd > p.temp > em.high’);
のfilter()のパラメータにセットする。

値を取得

html()メソッドで値を取得する。

$url = "https://weather.yahoo.co.jp/weather/jp/8.html?day=1";
$page = Goutte::request('GET', $url);

$selector = $page->filter('#map > ul > li.point.pt6710 > a > dl > dd > p.temp > em.high');
$temp = $selector->html();
dd($temp);

返信を残す

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