Pipedreamは、開発者が数百のアプリやAPIを簡単に接続できる強力なサーバーレス統合プラットフォームであり、自動化ワークフローの迅速な構築を可能にします。ユーザーは、インフラを管理することなく、JavaScript、Python、その他の言語を使用してカスタムロジックを書くことができます。
イベント駆動型アーキテクチャをサポートしており、Slack、Notion、GitHub、Stripeなどの人気サービスと統合されています。Pipedreamは、ウェブフック、データ同期、通知システム、その他の自動化シナリオの構築に特に適しており、開発効率と柔軟性を大幅に向上させます。
Scrapelessは、Pipedream内で以下のモジュールを提供します:
1. クローラー
- クローラー スクレイプ:単一のウェブページからデータを抽出します。
- クローラー クロール:ウェブサイトとそのリンクされたページをクロールして、包括的なデータを抽出します。
2. スクレイピングAPI
- Google SERPおよびGoogle Trendsから豊富な検索データに簡単にアクセスして取得します。
3. ユニバーサルスクレイピングAPI
- 保護されたページまたは動的ページにアクセスします。自動的にアンチスクレイピングメカニズムを処理します。
知識グラフインテリジェントクロールシステムを作成する方法(Pipedream + Scrapeless)
前提条件
- Scrapelessに登録し、APIトークンを取得していること。
- Discord Webhook URLを持っていること(通知送信用)。
まず、以下のセットアップを完了する必要があります:
- 
Scrapeless APIキー: Scrapelessアカウントにサインアップしてください。登録後、ダッシュボードからAPIキーにアクセスできます。 
- 
Pipedreamアカウント:Pipedreamアカウントを作成します。 
ステップ1:PipedreamにScrapeless APIキーを設定する
Scrapelessアカウントにログインし、ダッシュボードに移動してAPIキーを取得する必要があります。
取得したら、Pipedreamの「アカウント」タブに移動し、そこでキーを追加します。
その後、APIキーを次のように設定します:
ステップ2:トリガーを追加 - schedule_trigger
- タイプ:スケジュール
- トリガー時間:毎日08:00(UTC)
- メソッド:Cronまたは固定時間間隔を使用
ステップ3:Scrapelessを使用して特定のキーワードの知識パネル情報を検索する
コンポーネント:
- google-search
パラメーター設定:
- query: coffee
- gl: us(オプション)
- hl: en(オプション)
ステップ4:情報を抽出する(extract_coffee_search_results)
このステップでは、前のステップで取得したキーワードデータから知識パネル情報を抽出します。
次のコードを使用してNode.jsコードステップを追加します:
export default defineComponent({
  async run({ steps }) {
    const searchResult = steps.scrape_google?.$return_value;
    const webResults = searchResult?.knowledge_graph.web_results;
    if (!searchResult || !webResults) {
      throw new Error("❌ Scrapeless Google Searchから有効な結果が返されていません。");
    }
    const links = webResults.map((item) => item.link);
    return {
      links,
    };
  }
});ステップ5:Discord通知を送信する(Send_Discord_Notification)
このステップでは、ステップ4で取得した情報を指定したDiscordチャネルに送信します。
次の例のコードを使用してNode.jsステップを追加します:
import { axios } from "@pipedream/platform";
export default defineComponent({
  async run({ steps, $ }) {
    const results = steps.extract_coffee_search_results.$return_value?.links || [];
    const sendLinks = results.slice(0, 5);
    if (!sendLinks || sendLinks.length === 0) {
      return { status: "no_results" };
    }
    const webhookUrl = "YOUR_WEBHOOK_URL"; // 🟡 ここをあなたのWebhookに置き換えてください
    const lines = sendLinks.map(r => `📌 ${r}`).join("\n\n");
    const message = {
      content: `📡 **キーワードモニター: "coffee"**\n\n${lines}\n\n⏰ 検出時間: ${new Date().toLocaleString()}`
    };
    try {
      const res = await axios($, {
        method: "POST",
        url: webhookUrl,
        headers: {
          "Content-Type": "application/json"
        },
      });
    } catch (error) {
      console.error("Error sending Discord notification", error);
    }
  }
});データ: メッセージ,
});
  戻り値: { ステータス: "送信済み", res };
} catch (err) {
  console.error("❌ Discord ウェブフックに失敗しました:", err);
  戻り値: { ステータス: "エラー", エラー: err.message };
}},
});
この行のURLをあなた自身のDiscordウェブフックに置き換えてください:const webhookUrl = "https://discord.com/api/webhooks/your_webhook_id/your_webhook_token";
---
ウェブフックをまだ持っていない場合、以下の手順でDiscordに作成できます:
1. 通知を送信したいチャンネルを開きます。
2. チャンネル設定 > 統合 > ウェブフックをクリックします。
3. 新しいウェブフックを作成し、そのURLを上記のwebhookUrlとして使用するためにコピーします。
---
### プレビュー (メッセージ送信済み)
Jasper.aiページが変更されると、Discordにこのようなメッセージが届きます:
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。
