Help us understand the problem. What is going on with this article?

日向坂46のオフィシャルサイトをスクレイピングするライブラリを作った話

More than 1 year has passed since last update.

はじめに

最近、日向坂46(旧けやき坂46)が注目されていますね。
中身スカスカなオフィシャルサイトも新しく公開されていたので、暇つぶしにスクレイピングして遊んでいました。その成果をライブラリ化したので紹介します。

導入

$ composer require shimomo/hinatazaka46-crawler

使い方

<?php

require __DIR__ . '/../vendor/autoload.php';

$crawler = new \Hinatazaka46\Crawler();

// 全てのメンバーのプロフィール、ニュース、スケジュールを取得
$response1 = $crawler->crawlMember();

// 特定のメンバーのプロフィール、ニュース、スケジュールを取得 (例: 影山 優佳 & 松田 好花)
$response2 = $crawler->crawlMember(['numbers' => [4, 18]]);

// 指定した年月のニュースを取得 (例: 2019年2月)
$response3 = $crawler->crawlNews(['year' => 2019, 'month' => 2]);

// 指定した年月のスケジュールを取得 (例: 2019年2月)
$response4 = $crawler->crawlSchedule(['year' => 2019, 'month' => 2]);

// 日向坂46のGoogleニュースを取得
$response5 = $crawler->crawlGoogleNews();

var_dump($response2);
array(2) {
  [0]=>
  array(9) {
    ["name"]=>
    string(13) "影山 優佳"
    ["kana"]=>
    string(22) "かげやま ゆうか"
    ["date_of_birth"]=>
    string(15) "2001年5月8日"
    ["zodiac_sign"]=>
    string(12) "おうし座"
    ["height"]=>
    string(5) "156cm"
    ["place_of_birth"]=>
    string(6) "東京"
    ["blood_type"]=>
    string(4) "O型"
    ["news"]=>
    array(0) {
    }
    ["schedule"]=>
    array(0) {
    }
  }
  [1]=>
  array(9) {
    ["name"]=>
    string(13) "松田 好花"
    ["kana"]=>
    string(19) "まつだ このか"
    ["date_of_birth"]=>
    string(16) "1999年4月27日"
    ["zodiac_sign"]=>
    string(12) "おうし座"
    ["height"]=>
    string(5) "157cm"
    ["place_of_birth"]=>
    string(6) "京都"
    ["blood_type"]=>
    string(4) "A型"
    ["news"]=>
    array(0) {
    }
    ["schedule"]=>
    array(1) {
      [0]=>
      array(3) {
        ["date"]=>
        string(10) "2019.02.17"
        ["category"]=>
        string(6) "舞台"
        ["title"]=>
        string(40) "舞台「ザンビ~Theater's end~」"
      }
    }
  }
}

公開

ソースコードは、GitHubで公開しています。
https://github.com/shimomo/hinatazaka46-crawler

おわりに

ノリと勢いって大事だよね。

shimomo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away