Closed6
カジュアル(?)な開発案件なのでDBを使いたくなくてGoogle Spread Sheetを代用したいと思ったのだけどこれはこれでGCPを使わなきゃいけなさそうでめんどくさそう。良い方法はないものか。
やりたいこと詳細
- 担当者(非開発者)がスプレッドシートを編集できる
- Lambda(コンテナ型)でシートを参照し、Chromium + Seleniumで諸々処理する
- スプレッドシートをLambdaが編集できる必要はない
- 「URLを知っている人は誰でもアクセスできる」設定で問題ないはず
- 必ずしもスプレッドシートである必要もない。シートのほうがいいけどテキスト(CSV)でも許容
アイディア
- GASを使用してなにかできないか?
- CSVを公開できるやつとか
- 誰でもアクセスできるテキストを(ユーザが)編集できるサービスとかないかな
- そもそも「URLを知っている人は誰でもアクセスできる」スプレッドシートならGAS不要だったりする?
アイディア
- Seleniumを使っているのだからSeleniumで公開済みのシートにアクセス後、CSVをダウンロードする操作をすればよいのでは。(それも結構面倒だけど・・・)
公開済みのシートでダウンロード操作をするときに、Chromeの検証機能でアクセス先を確認したところ、下記のようなURLにアクセスすればCSVを取得できることがわかった。
https://docs.google.com/spreadsheets/d/{スプレッドシートのID}/export?format=csv
補足
デフォルトのシート以外をダウンロードしたい場合はgidを指定する
https://docs.google.com/spreadsheets/d/{スプレッドシートのID}/export?format=csv&gid={シートのID}
pythonでデータ取得を確認するためのサンプル
import requests
id = 'XXXXXXXXXX'
result = requests.get(f'https://docs.google.com/spreadsheets/d/{id}/export?format=csv')
result.encoding = result.apparent_encoding
print(result.text)
このスクラップは2022/12/27にクローズされました