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
: coffeegl
: 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サイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。