# 【スクレイピング】Bubble×dexi.ioの実装方法について

**URL:** <https://www.nocode-faq.com/t/topic/4451>\
**Category:** bubble\
**Created:** [2025 年 1 月 26 日午前 8:04 UTC](https://www.nocode-faq.com/t/topic/4451 "2025-01-26T08:04:58Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ono](https://avatars.discourse-cdn.com/v4/letter/o/b19c9b/32.png) [@ono](https://www.nocode-faq.com/u/ono)\
**Post date:** [2025 年 1 月 26 日午前 8:04 UTC](https://www.nocode-faq.com/t/topic/4451/1 "2025-01-26T08:04:58Z")

</div>

以下の記事を参考に、とある映画館の上映スケジュール（上映中作品のタイトル、公開予定作品のタイトル）を毎日決まった時間にスクレイピングし、Bubble アプリのDBへ適切な形で保存しようとしています。  
[https://blog.nocodelab.jp/entry/scraping](https://blog.nocodelab.jp/entry/scraping)

dexiの方では、以下のように実装しています。

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/3/3390084c0d03c2ecae813db4e97ed8de9b909ca8.png)  
最初に開くURLでは、上映中作品のタイトルを引っ張ってきて「title」に格納し、２つ目と３つ目に開くURLでは、公開予定作品のタイトルを引っ張ってきて「title1」に格納しています。  
すると、それぞれ以下のようになります。  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/d/d108285f08a739c900cd574b2f82e2b5c6adcd85.png)  
dexiの方で決まった時間にスクレイピングするよう、スケジュール設定はしてありますので、常に最新の上映スケジュールは抽出できています。

そして、これらデータをAPIでBubbleに渡し、Bubble内のDBに保存しないままrepeatinggroupで表示すると、以下のようになってしまいます。

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/e/ef20c6ac2c3e0048f3707494b1b73590b75e5236.png)

この、何も表示されていない空の部分を非表示にしたいのですが、どのようにすればよいでしょうか（いろいろ試してみましたがうまくできず）。

そもそも、スクレイピングが終わった時点ですぐに（空の部分は除いて）先にBubbleのDBに保存した方がよいでしょうか？  
それかBackend workflowでスケジュールを設定しておき、決まった時間にBubbleのDBを上書き（更新）すべきか。

他にも良い案がありましたら、お手数をおかけしますがその辺りもご教示いただけますと幸いです。

とにかくどんな方法でもよいので、最初に述べました

> 上映スケジュール（上映中作品のタイトル、公開予定作品のタイトル）を毎日決まった時間にスクレイピングし、Bubble アプリのDBへ適切な形で保存

ができればと思っております。

お手数をおかけしますが、何卒よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![ono](https://avatars.discourse-cdn.com/v4/letter/o/b19c9b/32.png) [@ono](https://www.nocode-faq.com/u/ono)\
**Post date:** [2025 年 1 月 26 日午前 8:14 UTC](https://www.nocode-faq.com/t/topic/4451/2 "2025-01-26T08:14:51Z")

</div>

追記（自分用メモ）

[![](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/7/776996f24e139628c1171f31986282387826874d.jpeg "Bubble(バブル)のRepeatingGroupで特定の要素のみ非表示にする方法 ノーコード #8") ](https://www.youtube.com/watch?v=fyHXMacmy6s)

Do a search forを使ったとき、特定の要素のみを非表示にすることができたりするようですので、まず一番最初に表示をする前にBubbleのDBに保存することはマストですかね。。？  
そのとき、空部分を除いてDBに保存するのか。  
あるいは空部分も含めて保存し、表示をするときに空部分を除いて表示をするのか。  
そもそもどのように保存するのか。  
あるいは、根本的にdexiの方でうまい抽出方法があるのか。

お手数をおかけしますが、よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![tsubasa](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/tsubasa/32/8670_2.png) [@tsubasa](https://www.nocode-faq.com/u/tsubasa)\
**Post date:** [2025 年 1 月 26 日午前 9:52 UTC](https://www.nocode-faq.com/t/topic/4451/3 "2025-01-26T09:52:07Z")

</div>

**Dexiを使ったことはないのですが、**  
説明を拝見すると、APIからJSONデータを取得しているようですね。  
Bubbleのデータベースに保存する必要はマストではないですよ。

記事では **API Connectorを使っているようですが、データ取得時にフィルターをかけることができます。**  
例えば、以下のようにGETリクエストにパラメーターを追加することで、  
タイトルが空のデータを除外できるかもしれません。  
（未検証ですが参考にしてくださいね）

**例：**

```auto
GET https://api.dexi.io/runs/{runId}/latest/result?filter=Title ne ''

```

詳しくは、DexiのAPIドキュメントも参考にしてみてください。  
[[Dexi API ドキュメント](https://developer.dexi.io/reference/general-1)]

* * *

もしAPIでフィルターが難しい場合には、  
一度すべてのデータを取得してから、Bubble側でフィルタリングする方法もあります。

### **Bubbleでのフィルタリング方法**

**API設定例：**

- **URL:** `https://api.dexi.io/runs/{runId}/latest/result`
- **クエリパラメーター設定例：**
  - `Key: filter`
  - `Value: Title ne ''`

また、Bubbleの **Repeating Group** を使えば、取得後に以下の設定で簡単にフィルタリングできます。

```auto
GetLatestResult row:filtered [Title is not empty]

```

* * *

APIの設定やコードについては、いろいろな方法があるので、  
まずは試してみて、うまくいかない場合は別の方法も考えてみてください。

---

<div class="post-metadata">

**Author:** ![ono](https://avatars.discourse-cdn.com/v4/letter/o/b19c9b/32.png) [@ono](https://www.nocode-faq.com/u/ono)\
**Post date:** [2025 年 1 月 26 日午前 11:44 UTC](https://www.nocode-faq.com/t/topic/4451/4 "2025-01-26T11:44:35Z")

</div>

tsubasa様

ありがとうございます。  
ご教示いただいた方法も試してみましたがなぜかうまくいかず、その後いろいろ試してみまして、Advancedで試してみたらなぜかうまくいきました。  
この後、もう一度ご教示いただいた方法含め、シンプルに実装できないか挑戦してみようと思います。

 ![image](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/d/d90ebc07a2371da73d37c638ed2fa374621538e8.png)  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/0/0bf829ddce65a493d4dc6dade278df4d6844005d.png)

申し訳ございません。  
私の説明不足だったのですが、上映スケジュールをBubble内からユーザーが手動で変更したり、この上映スケジュール自体を生成AIにリクエストとして投げたりする関係上、DBには保存しておきたいのです。

となると、Bubble内でBackend workflowでスケジュールを指定しておき、時間になったら（空の分をフィルタリングした上で）DBに上書き（更新）する、という方法が無難でしょうか？  
あるいは、dexiの方でexecute（スクレイピング実行）が終わったら、自動的にDBを上書きしてくれればよいのですが、調べてみてもそれができるのかどうか分からず。。。  
お手数をおかけしますが、ご教示いただけますと幸いです。

引き続きよろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![tsubasa](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/tsubasa/32/8670_2.png) [@tsubasa](https://www.nocode-faq.com/u/tsubasa)\
**Post date:** [2025 年 1 月 26 日午後 12:47 UTC](https://www.nocode-faq.com/t/topic/4451/5 "2025-01-26T12:47:33Z")

</div>

**順調に進んでいるようで良かったですね！😊**

基本的には、 **Bubbleのワークフローを活用して、定期的にDBを更新するのが無難** だと思います。  
（例えば、Backend Workflowを使ってスケジュールを設定するなど）

> あるいは、dexiの方でexecute（スクレイピング実行）が終わったら、自動的にDBを上書きしてくれればよいのですが、調べてみてもそれができるのかどうか分からず。。。

→ dexiのAPIには、実行完了後に自動でBubbleのDBを更新するような「終了ステータス通知」機能がないように思います。  
そのため、やるとすると、  
**DBの差分を確認して更新する仕組み** を作るのが良さそうです。  
多分ですが、、 **idや作成日などをキーにして、定期的にCron（スケジュール実行）を使ってチェック＆更新** する方法などになると思いますよ。
