注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

【PHP】Googleトレンドの中身をphpで取得する方法

  • 2021年1月19日
  • 2021年1月22日
  • 技術
  • 0件

Googleトレンドからphpでデータを取得する

https://trends.google.co.jp/trends/trendingsearches/daily?geo=JP
上記のページを見ると、Googleトレンドを確認することができます。
今回は、Googleトレンドからphpでデータを取得するプログラムを作成したので、その時のメモを記載します。

やること

https://trends.google.co.jp/trends/trendingsearches/daily?geo=JP
上記URLからデータを取得して、DB(データベース)に、表示されている記事タイトル、説明文、画像URL、公開日時を登録できるようにしていきます。

事前調査

https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=JP

データ取得用のエンドポイントが提供されていますので、こちらからデータを取得します。アクセスすると分かると思いますが、xmlで提供されています。

Googleトレンドからデータを取得する

$xml = simplexml_load_file('https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=JP');

simplexml_load_file を使ってデータを取得します。xmlデータが、$xml変数にセットされました。
この形式だと、自由に扱うことができないため、下記のコードのように、一度jsonに変換して、配列を生成するようにします。

json_decode(json_encode($xml), true);

上記に書いてある通り、json_decodeの第二引数に、true を入れると、返されるオブジェクトは連想配列形式になります。データの中身を確認してみます。var_dumpで書き出した結果が以下になります。

array(4) {
  ["title"]=>
  string(19) "Daily Search Trends"
  ["description"]=>
  string(15) "Recent searches"
  ["link"]=>
  string(64) "https://trends.google.co.jp/trends/trendingsearches/daily?geo=JP"
  ["item"]=>
  array(20) {
    [0]=>
    array(4) {
      ["title"]=>
      string(15) "宮城まり子"
      ["description"]=>
      string(18) "ねむの木学園"
      ["link"]=>
      string(110) "https://trends.google.co.jp/trends/trendingsearches/daily?geo=JP#%E5%AE%AE%E5%9F%8E%E3%81%BE%E3%82%8A%E5%AD%90"
      ["pubDate"]=>
      string(31) "Mon, 23 Mar 2020 08:00:00 +0900"
    }...

取得したデータをデータベースに登録する

ここまで来たら、普段利用しているデータベースに登録するだけです。データを見てもらえれば分かりますが、記事データが、$array[‘channel’][‘item’]に入っているため、下記のようなかたちでループさせながら、登録させていきます。

 foreach ($reports['channel']['item'] as $report) {
    $this->_dataObj->insert($report['pubDate'], $report['title'], $report['link'], $report['description']);
}

完了しました。簡単ですね。