作成したカスタムテーマの異なるタブに、スクレイピングされたコンテンツを表示する自動パイプラインを構築したいと考えています。そのパイプラインは以下の機能を持つ必要があります。
- ソース(RSSフィード、ウェブサイトなど)からコンテンツをスクレイピングする。
- メタデータ(タイトル、ソース、タイプ(ニュース/カンファレンス)、URL、日付)でデータを構造化する。
- Discourse APIを使用して以下を行う。
- 正しいカテゴリの下にトピックを作成し、カスタムテーマの特定のタブ内のコンテンツを更新する。
- 関連するタグを追加する(正しいタブの下に表示されるようにするため)。
スクレイピングされたデータを保存し、レンダリングするための最良の方法は何でしょうか?
- ローカルデータベースまたは外部CMSでコンテンツを保存およびスケジュールする。
- YAML/JSONファイル(静的ソース)。
「いいね!」 1
pfaffmanさん、プラグインの提案ありがとうございます。しかし、RSSフィードデータはなく、スクレイピングしたデータをスタンドアロンデータベースに保存しています。このプラグインを使用してスタンドアロンデータベースに接続し、必要なデータを取得してコンテンツをレンダリングすることはできますか?
pfaffman
(Jay Pfaffman)
5
それは例でした。スクレイプしたデータをRSSフィードにするか、プラグインを変更して好きな形式で読み込めるようにすることができます。
おそらく私がやるなら、Rubyでスクレイパーを書き、それをプラグインに統合するでしょう。
あるいは、Use the Discourse API ruby gem を使って、それをGitHubアクションに入れ、データをプッシュさせることもできるかもしれません。カスタムプラグインが使えないホストされているクライアントのために、私はそうするつもりです。
ジェイさん、ありがとうございます。Pythonでのスクレイパー開発はすでに完了しており、現在、MongoDBに保存されているスクレイピングデータをどのようにレンダリングするかを評価しています。