8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonでスクレイピングしたテキストを、Googleスプレッドシートに入れる

Posted at

参考サイト

https://yokonoji.work/python-scraping-6
https://qiita.com/akabei/items/0eac37cb852ad476c6b9

使ったライブラリ

requests
BeautifulSoup
oauth2client
gspread

実装

サービスアカウントキー

Googleスプレッドシートにアクセスするためのサービスアカウントキーは、参考サイトに書いてあるとおりなので、ざっくりで書きます。m(_ _)m

↓サイトにて、
https://console.developers.google.com/cloud-resource-manager

↓を実行

  • プロジェクトを作成
  • Google Drive API 有効
  • Google Sheets API 有効
  • サービスアカウントキーを作成 (JSONダウンロード)

スプレッドシート作成

  • スプレッドシート作成
  • 「共有」から、ダウンロードしたJSONに書いてある「client_email」のアドレスを共有

プログラム作成

sample.py
import requests
import gspread
from bs4 import BeautifulSoup
from oauth2client.service_account import ServiceAccountCredentials

url = "<取得するサイトのURL>"
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
elements = soup.select('<取得したいタグ>')#select()メソッドを使っているので、「CSSセレクタ」で書ける

scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('<ダウンロードしたJSONファイル名>', scope)
gc = gspread.authorize(credentials)
wks = gc.open('<スプレッドシートの名前>').sheet1

for index, e in enumerate(elements):
    num = index + 1 #スプレッドシートの番号に「0」が無いので先に1をプラス
    wks.update_acell('A'+str(num) , e.get_text())
8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?