この記事によって実現できること
Python Seleniumによるスクレイピングでとってきた情報をスプレッドシートに転記
▼ Tips
Chromeドライバーを定期的に手動でダウンロードしているかたは必見です!
こんな面倒な作業をしている人はサクッと解決しちゃいましょう!
はじめに
こういう悩みありませんか?
スクレイピングやり始めたんだけど、CSVとかでダウンロードしてスプレッドシートにインポートしてるんだけど、自動化できないかな...
Pythonでスプレッドシートに記入する方法
1. 下準備編(Google Cloud Platform)
この記事で完璧です!
2. コード編
まずはコピペ!
#ここから編集
省略
#ここまでの部分
を編集しましょう。
▼コピペ用
import gspread
import json
def get_spreadsheet():
"""
スプレッドシートとの連携の関数
:return: ワークシート
"""
#ここから編集
keyfile_path = "'/ファイルのパス/ファイル名.json'" # 秘密鍵のjsonのパスを記入
SPREADSHEET_KEY = 'スプレッドシートキー' # 転記したいワークブックのIDを記入
#ここまで
#ServiceAccountCredentials:Googleの各サービスへアクセスできるservice変数を生成。
from oauth2client.service_account import ServiceAccountCredentials
#2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
#認証情報設定
#ダウンロードしたjsonファイル名をクレデンシャル変数に設定(秘密鍵、Pythonファイルから読み込みしやすい位置に置く)
credentials = ServiceAccountCredentials.from_json_keyfile_name(keyfile_path, scope)
#OAuth2の資格情報を使用してGoogle APIにログインします。
gc = gspread.authorize(credentials)
#共有設定したスプレッドシートのシート1を開く
workbook = gc.open_by_key(SPREADSHEET_KEY)
return workbook
※スプレッドシートキーとは▼
https://docs.google.com/spreadsheets/d/(ここの部分)/edit
この関数を使って色々と行っていくことになります!
# 例
workbook = get_spreadsheet() # これはワークブックの階層
worksheet = workbook.worksheet("シート名を記入") # これはシートの階層
これでアクセスでき、色々と作業できるようになります!
▼ちなみに僕がcsvファイルを転記する際に組んでる関数がこちらです。
def set_values_to_ss(worksheet, data_list):
"""
スプレッドシートに記入する関数
:param worksheet: シート
:param data_list: csv加工後配列
:return:
"""
last_row = 3 # 記入開始の行
for i in range(len(data_list)):
#このときはF列〜L列に記入したかったのでこのようになっているが各々編集◯
#worksheet.range('A1:B10')のように記入
cell_list = worksheet.range('F' + str(last_row) + ':L' + str(last_row))
for j, cell in enumerate(cell_list):
try:
cell.value = int(data_list[i][j])
except:
cell.value = data_list[i][j]
worksheet.update_cells(cell_list)
# print("process: "+str(i)+"/"+str(len(data_list)))
last_row += 1
sleep(0.1)
ちなみに
worksheet.update_cells(編集したい範囲)
でスプレッドシートが更新されます。(転記できる)
要するにこういうことです。
① スプレッドシートにアクセス
② コード内で転記するシートを作成
③ ②の内容でアップデート
ではまた次回!
この記事によって実現できること
Python Seleniumによるスクレイピングでとってきた情報をスプレッドシートに転記