Google スプレッドシートに書かれているurlからタイトルとmeta descriptionを取得するの続きです。他の言語、PythonとPHPでも同じことをやってみます。

Pythonの場合

Pythonでスプレッドシートのデータの読み書きとHTMLの解析をするのであれば、準備としてpipコマンドで以下をインストールします。

そのあと必要なモジュールをインポートして関数を定義します。

app.py

定数を宣言します。このシートに書かれているurlを取得して結果を書き込みたいので、SPREADSHEET_IDとRANGEを以下のように定義します。シートの読み取りだけでなく書き込みもしたいので、SCOPES は [“https://www.googleapis.com/auth/spreadsheets”]にしています。

最後のsecret.jsonはGoogle スプレッドシートに書かれているurlからタイトルとmeta descriptionを取得するでサービスアカウントを作成したときにダウンロードした鍵です。

あとは定義した関数と定数から以下のようなコードを書きます。シートに書かれているデータは配列の配列で返されますが、空白のセルがあると配列のなかの配列の要素数が異なる場合があります。書き込むときは同じにしたいので新しい変数newValuesを宣言してそこに新しい値をセットしています。

URLとして渡された文字列が空文字であったり、URLではない文字列であったり、存在しないページを参照するURLであることが考えられるので例外処理をしています。

PHPの場合

PHPでスプレッドシートのデータの読み書きとHTMLの解析をするのであれば、準備としてcomposerで以下をインストールします。

そのあと以下のコードを書きます。

まずrequire_onceでcomposerでインストールしたファイルを読み込みます。そのあと各関数を定義します。

getService関数は認証情報からスプレッドシートにアクセスするためのサービスを作成します。getData関数はシートから読み出したデータのA列からwebページにアクセスしてタイトルとdescriptionを取得します。getValuesForUpdate関数はgetData関数が返した値からスプレッドシートを更新するためのデータを作成します。

app.php

上記の関数を利用して処理をおこないます。スプレッドシートのIDとシート名と範囲からデータを取得します。そして該当ページをスクレイピングしてタイトルとdescriptionを取得してこれをスプレッドシートに書き込みます。

app.php