LoginSignup
0
0

More than 1 year has passed since last update.

FireStoreにデータを保存と応用

Posted at

はじめに

スクレイピングで集めた情報を、Firestoreに保存します。データを保存することで、アプリなどに応用することができます。

今回は、前回の続きで、ニュース記事のデータを例に用います。

前回の記事:ニュース記事をスクレイピング
前回の記事:SeleniumでDeepL翻訳

目次

  1. 全体概要
  2. 実行コード
  3. アプリケーションへの応用
  4. 参照文献

全体概要

イメージですが、Firebaseは、サービス全体を指しています。Firestoreは、Firebaseの中の一つのサービスです。

使い方ですが、前提として、Firebaseの使い方は、ドキュメントを参照することが、一番良いです。保存するコードは、少しずつ変化するからです。しかし、公式ドキュメントは、わかりづらいように、自分は感じました。ここでは、私がどのように使っているかの例について示します。

Firebaseの公式ドキュメント
Firestoreの公式ドキュメント

実行する内容とはしては、下記の内容を、Firebaseに保存します。データは、辞書型で持ちます。

保存内容
article = {
    "title": "Biden says hes not sure about voting bills future after Sinema reiterates opposition to rule change - CBS News",
    "pubDate": "Thu, 13 Jan 2022 23:58:00 GMT",
    "source": "CBS News",
    "link": "https://news.google.com/__i/rss/rd/articles/CBMiTmh0dHBzOi8vd3d3LmNic25ld3MuY29tL25ld3Mva3lyc3Rlbi1zaW5lbWEtdm90aW5nLXJpZ2h0cy1zZW5hdGUtcnVsZXMtc3BlZWNoL9IBAA?oc=5",
    "title_ja": "バイデン氏、シネマ氏がルール変更に改めて反対した後、投票法案の将来について「確信が持てない」と発言 - CBS News"
}

保存後の状態は、次のようになります。
保存のページ

実行コード

regist_firebase.py
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

# firestoreを初期化する
cred = credentials.Certificate("./serviceAccountKey.json")
firebase_admin.initialize_app(cred)
db = firestore.client()

# firestoreに保存する
doc_ref = db.collection("importants").document()
doc_ref.set({
    u"title": article["title"],
    u"pubDate": article["pubDate"],
    u"link": article["link"],
    u"source": article["source"],
    u"title_ja": article["title_ja"],  
})

serviceAccountKey.jsonには、APIキーが一覧として保存しているファイルです。

保存する内容を変化させたいのであれば、u"保存したいデータの名前": 保存したいデータの内容 とすれば、良いです。db.collection()の中の部分を変化させると、保存するデータベースのコレクション名を変更できます。

アプリケーションへの応用

これまでの内容を、応用することで、下のようなアプリを制作することができます。このWebアプリは、( https://www.babmuclr.com/ )で閲覧できます。このWebアプリの概要は、次のnoteで説明しています。( https://note.com/babmculr/n/n72baebdb9a70 )

アプリのページ

参考文献

0
0
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
0
0