仕事でGoogle Driveを利用しています。
クラウド上にどんどん保存できるのですが、保存先が増えるとそれはそれでやっぱり大変だったりします。
ブラウザからももちろん一覧は確認できるのですが最初にアクセスした際は、数が多いと下の方にあるものだとhtmlが読み込まれていないのか、ページ内検索でもヒットせずちょっと不便だな、と思ってみたり。
そこで、テキストベースで一覧表作成しようと思ってつくってみました。
Pythonと、ライブラリの Beautiful Soup を使ってだいぶシンプルに作成しました。
もし、Beautiful Soup をインストールしていない場合は先にインストールする必要があります。
[python3でwebスクレイピング(Beautiful Soup)(https://qiita.com/mtskhs/items/edf7dbba9b0b0246ef8f)
こちらの記事にインストール方法が記載されております。
準備するものとして、今回は一覧化させたい共有ドライブページに遷移し、そのページのHTML情報を全てコピー、任意のファイル名をつけて保存し、それをpythonで読み込み利用します。
ドライブの画面ですと、右クリックがGoogle Driveメニューで固定?されてしまうようなのでショートカットの
ctrl + U
で実行するのがよさそう。
2021年3月5日時点だと、下記方法で切り取りが可能でした。
#! python3
# google共有ドライブの一覧を作成する.py
import bs4
#この例では読み込むファイルと、実行するファイルが同じ階層におかれています
soup = bs4.BeautifulSoup(open('HTMLを記載しておいたファイル名.html','r',encoding="utf-8"),'html.parser')
div_elem = soup.select('.l-t-T-j')
for i in div_elem:
data_elem = i.get('data-id')
tooltip_elem = i.get('aria-label')
url = 'https://drive.google.com/drive/folders/'+ data_elem
print(tooltip_elem)
print(url+'\n')
実行結果として、
共有ドライブ1
共有ドライブ1のurl
共有ドライブ2
共有ドライブ2のurl
共有ドライブ3
共有ドライブ3のurl
の、ように出力されます。
共有ドライブだけでなく、マイドライブも同じ方法でできるかもしれませんが自分はまだ試していません。
また、Google DriveのHTMLファイル生成方法が変わると、このプログラムでの判定方法だとおかしくなってしまう可能性があるのでその場合は要変更です。
また、Google Drive Apiでもさくっといけるかもしれませんが、共有ドライブにおいて全て管理者権限があるアカウントから実行しなければいけないのかな?とも思ったのでこの方法を試してみました。