はじめに
スクレイピングで集めた情報を、Firestoreに保存します。データを保存することで、アプリなどに応用することができます。
今回は、前回の続きで、ニュース記事のデータを例に用います。
前回の記事:ニュース記事をスクレイピング
前回の記事:SeleniumでDeepL翻訳
目次
- 全体概要
- 実行コード
- アプリケーションへの応用
- 参照文献
全体概要
イメージですが、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"
}
実行コード
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 )