スプレッドシートには複数のurlが書かれています。urlを取得してそのサイトにアクセスしてサイト情報を抜き出してシートに書き込んでみることにします。これまでと同様にPHPとgoogleapis/google-api-php-clientを使います。

スプレッドシートの確認はこちらから。urlリスト書き込み先のシート

ここへアクセスするとしばらく待たされますが、書き込み先のシートに追記されます。

これまで同様にGoogle Cloud PlatformにおけるProjectの作成、Google Sheet APIの有効化、サービスアカウントの作成と認証情報を含んだJSONファイルのダウンロードをしておきます。前回のダウンロードしたJSONファイルをそのまま使ってもかまいません。

シート「サイト情報1」に列挙されているurlを読み込んで、タイトルとdescriptionを取得し、これをシート「サイト情報2」に書き込みます。

まず自作関数getUrlsFromSpreadsheetでurlを読みとります。自作関数 getDataFromPageで実際にページにアクセスしてurlとタイトル、descriptionの配列を取得します。そして自作関数 setDataToSpreadsheetで別のシートに結果を書き込みます。

では次にurlを読みとるためのgetUrlsFromSpreadsheet関数をみてみましょう。

次に実際にページにアクセスしてurlとタイトル、descriptionの配列を取得するgetDataFromPage関数を示します。

HTMLの内容によっては警告がでることがあります。そこでlibxml_use_internal_errors( true );とlibxml_clear_errors();を実行しています。それからタイトルやdescriptionが取得できない場合は空白文字をいれます。

最後に取得したデータをシートに書き込むgetDataFromPage関数を示します。おまけで最後に書き込み時刻をいれています。

動作確認とスプレッドシートの確認はこちらから。urlリスト書き込み先のシート

ここへアクセスするとしばらく待たされますが、書き込み先のシートに追記されます。