ホームページ >ウェブフロントエンド >jsチュートリアル >Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-20 10:32:11808ブラウズ

Node-Fetch API を使用して Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で HTTP リクエストを作成する方法

当社の現在の Web サイトは通常、画像、CSS、フォント、JavaScript、JSON データなどのモノリシック コレクションなど、数十の異なるリソースに依存しています。しかし、世界初の Web サイトは HTML のみで書かれていました。

JavaScript は、優れたクライアント側スクリプト言語として、Web サイトの進化において重要な役割を果たしてきました。 XMLHttpRequest または XHR オブジェクトを使用すると、JavaScript はページをリロードせずにクライアントとサーバー間の通信を実現できます。

ただし、この動的プロセスは Fetch API によって挑戦されます。フェッチAPIとは何ですか? Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で Fetch API を使用するにはどうすればよいですか? Fetch API がより良い選択肢であるのはなぜですか?

今すぐこの記事から答えを見つけてください!

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 の HTTP リクエストとは何ですか?

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 では、HTTP リクエストは Web アプリケーションの構築や Web サービスとの対話の基本的な部分です。これにより、クライアント (ブラウザーや別のアプリケーションなど) がサーバーにデータを送信したり、サーバーからデータを要求したりできるようになります。これらのリクエストは、Web 上のデータ通信の基礎であるハイパーテキスト転送プロトコル (HTTP) を使用します。

  1. HTTP リクエスト: HTTP リクエストは、通常、データ (Web ページや API 応答など) を取得するか、サーバーにデータを送信する (フォームの送信など) ために、クライアントからサーバーに送信されます。
  2. HTTP メソッド: HTTP リクエストには通常、クライアントがサーバーに実行してほしいアクションを示すメソッドが含まれています。一般的な HTTP メソッドには次のものがあります。
    • GET: サーバーからデータをリクエストします。
    • POST: サーバーにデータを送信します (フォームの送信など)。
    • PUT: サーバー上の既存のデータを更新します。
    • DELETE: サーバーからデータを削除します。
  3. Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 HTTP モジュール: Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 は、HTTP リクエストを処理するための組み込み http モジュールを提供します。このモジュールを使用すると、HTTP サーバーを作成し、リクエストをリッスンし、リクエストに応答することができます。

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 が Web スクレイピングと自動化に最適な理由は何ですか?

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 は、その独自の特性、堅牢なエコシステム、非同期のノンブロッキング アーキテクチャにより、Web スクレイピングと自動化タスクに頼りになるテクノロジの 1 つになりました。

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 が Web スクレイピングと自動化に最適な理由は何ですか?理解してみましょう!

  1. 非同期およびノンブロッキング I/O
  2. スピードと効率
  3. ライブラリとフレームワークの豊富なエコシステム
  4. ヘッドレスブラウザでの動的コンテンツの処理
  5. クロスプラットフォームの互換性
  6. リアルタイムデータ処理
  7. 迅速な開発のためのシンプルな構文
  8. プロキシ ローテーションと検出防止のサポート

ノードフェッチAPIとは何ですか?

Node-fetch は、Fetch API を Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 環境にもたらす軽量モジュールです。これにより、HTTP リクエストの作成と応答の処理のプロセスが簡素化されます。

Fetch API は Promises を中心に構築されており、Web サイトからのデータのスクレイピング、RESTful API との対話、タスクの自動化などの非同期操作に適しています。

Node.JS で Fetch API を使用するにはどうすればよいですか?

Fetch API は、従来の XMLHttpRequest オブジェクトと比較して、より効率的かつ柔軟な方法でネットワーク リクエストを処理するように設計された最新の Promise ベースのインターフェイスです。

最新のブラウザでネイティブにサポートされているため、追加のライブラリやプラグインは必要ありません。このガイドでは、Fetch API を利用して GET および POST リクエストを実行する方法と、応答とエラーを効果的に管理する方法について説明します。

? : Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 がコンピューターにインストールされていない場合は、最初にインストールする必要があります。ここから、オペレーティング システムに適した Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 インストール パッケージをダウンロードできます。推奨される Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 バージョンは 18 以降です。

ステップ 1. Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 プロジェクトを初期化する

まだプロジェクトを作成していない場合は、次のコマンドを使用して新しいプロジェクトを作成できます:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

package.json ファイルを開き、type フィールドを追加して、それを module:
に設定します。

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

ステップ 2. ノードフェッチ ライブラリをダウンロードしてインストールする

これは、Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で Fetch API を使用するためのライブラリです。次のコマンドを使用してノードフェッチ ライブラリをインストールできます:

npm install node-fetch

ダウンロードが完了したら、Fetch API を使用してネットワーク リクエストを送信できるようになります。プロジェクトのルート ディレクトリに新しいファイルindex.jsを作成し、次のコードを追加します:

import fetch from 'node-fetch';

fetch('https://jsonplaceholder.typicode.com/posts')
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

次のコマンドを実行してコードを実行します:

node index.js

次の出力が表示されます:

Node-Fetch API を使用して Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で HTTP リクエストを行う方法

ステップ 3. Fetch API を使用して POST リクエストを送信する

Fetch API を使用して POST リクエストを送信するにはどうすればよいですか?以下の方法をご参照ください。プロジェクトのルート ディレクトリに新しいファイル post.js を作成し、次のコードを追加します:

import fetch from 'node-fetch';

const postData = {
  title: 'foo',
  body: 'bar',
  userId: 1,
};

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(postData),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

このコードを分析してみましょう:

  • 最初に、送信したいデータを含む postData というオブジェクトを定義します。
  • 次に、フェッチ関数を使用して POST リクエストを https://jsonplaceholder.typicode.com/posts に送信し、2 番目のパラメーターとして構成オブジェクトを渡します。
  • 構成オブジェクトには、リクエスト メソッド、リクエスト ヘッダー、リクエスト本文が含まれます。

次のコマンドを実行してコードを実行します:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

表示される出力:

Node-Fetch API を使用して Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で HTTP リクエストを行う方法

ステップ 4. Fetch API の応答結果とエラーの処理

プロジェクトのルート ディレクトリに新しいファイル response.js を作成し、次のコードを追加する必要があります:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

上記のコードでは、まず間違った URL アドレスを入力して HTTP エラーをトリガーします。次に、then メソッドで結果の応答のステータス コードを確認し、ステータス コードが 200 でない場合はエラーをスローします。最後に、catch メソッドでエラーをキャッチし、出力します。

次のコマンドを実行してコードを実行します:

npm install node-fetch

コードが実行されると、次の出力が表示されます:

Node-Fetch API を使用して Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で HTTP リクエストを行う方法

Webスクレイピングにおける3つの一般的な課題

1. キャプチャ

CAPTCHA (コンピュータと人間を区別するための完全に自動化された公開チューリング テスト) は、Web スクレイパーなどの自動システムが Web サイトにアクセスするのを防ぐように設計されています。通常、ユーザーはパズルを解く、画像内のオブジェクトを識別する、歪んだ文字を入力するなどして、自分が人間であることを証明する必要があります。

2. 動的コンテンツ

最近の Web サイトの多くは、React、Angular、Vue.js などの JavaScript フレームワークを使用してコンテンツを動的に読み込みます。これは、ブラウザーに表示されるコンテンツがページの読み込み後にレンダリングされることが多く、静的 HTML に依存する従来の方法でスクレイピングすることが困難であることを意味します。

3. IPの禁止

ウェブサイトは多くの場合、スクレイピング活動を検出してブロックするための対策を実装しています。最も一般的な方法の 1 つは IP ブロックです。これは、短期間に同じ IP アドレスから送信されるリクエストが多すぎる場合に発生し、Web サイトがその IP にフラグを立ててブロックすることになります。

Scrapeless スクレイピング ツールキット - 効率的なスクレイピング ツール

Scrapeless は、IP ブロック、CAPTCHA チャレンジ、JavaScript レンダリングなどの Web サイトのブロックをリアルタイムでバイパスできるため、最も包括的なスクレイピング ツール の 1 つです。 IP ローテーション、TLS フィンガープリント管理、CAPTCHA 解決などの高度な機能をサポートしているため、大規模な Web スクレイピングに最適です。

Scrapeless は Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 Web スクレイピング プロジェクトをどのように強化しますか?

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 との簡単な統合と検出回避の高い成功率により、Scrapeless は最新のボット対策防御をバイパスするための信頼性が高く効率的な選択肢となり、スムーズで中断のないスクレイピング操作が保証されます。

手動スクレイピングと比べて、Scrapeless のようなスクレイピング ツールキットを使用する利点

  1. Web サイト ブロックの効率的な処理: Scrapeless は、手動スクレイピングでは効率的に処理できない IP ブロック、CAPTCHA、JavaScript レンダリング などの一般的なアンチスクレイピング防御をリアルタイムでバイパスできます。
  2. 信頼性と成功率: Scrapeless は、IP ローテーションや TLS フィンガープリント管理 などの高度な機能を使用して検出を回避し、手動スクレイピングと比較して高い成功率と中断のないスクレイピングを保証します。
  3. 簡単な統合と自動化: Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 とシームレスに統合し、スクレイピング ワークフロー全体を自動化することで、手動によるデータ収集と比較して時間を節約し、人的エラーを削減します。

いくつかの簡単な手順に従うだけで、Scrapeless を Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 プロジェクトに統合できます。

スクロールを続ける時間です!次はもっと素敵になります!

Scrapeless Scraping Toolkit を Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 プロジェクトに統合する

始める前に、Scrapeless アカウントを登録する必要があります。

ステップ 1. Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 の Scrapeless Scraping API にアクセスする

Scrapeless ダッシュボードに移動し、左側の [Scraping API] メニューをクリックして、使用するサービスを選択する必要があります。

ここでは「Amazon」サービスを利用できます

Amazon api

Amazon API ページに入ると、Scrapeless が 3 つの言語でデフォルトのパラメーターとコード例を提供していることがわかります。

  • Python
  • 行きます
  • Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法

ここでは Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 を選択し、コード例をプロジェクトにコピーします。

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法

Scrapeless の Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 コード例では、デフォルトで http モジュールが使用されます。ノードフェッチ モジュールを使用して http モジュールを置き換えることができるため、フェッチ API を使用してネットワーク リクエストを送信できるようになります。

まず、プロジェクト内にscraping-api-amazon.js ファイルを作成し、Scrapeless が提供するコード例を次のコード例に置き換えます。

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

次のコマンドを実行してコードを実行します:

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Scrapeless API によって返された結果を確認します。ここでは単純に印刷してみます。返された結果は必要に応じて処理できます。

returned results

ステップ 2. Web Unlocker を利用して一般的なスクレイピング対策手段をバイパスする

Scrapeless は、CAPTCHA バイパス、IP ブロックなどの一般的なスクレイピング対策手段をバイパスするのに役立つ Web ロック解除 サービスを提供します。Web ロック解除サービスは、いくつかの一般的なクロールの問題を解決し、クロールタスクがよりスムーズになります。

Web ロック解除サービスの有効性を検証するには、まず、curl コマンドを使用して CAPTCHA を必要とする Web サイトにアクセスし、次に Scrapeless Web ロック解除サービスを使用して同じ Web サイトにアクセスし、CAPTCHA が正常に実行されるかどうかを確認します。バイパスされました。

  1. curl コマンドを使用して、https://identity.getpostman.com/login などの検証コードが必要な Web サイトにアクセスします。
mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y

返された結果を見ると、この Web サイトが Cloudflare 検証メカニズムに接続されていることがわかり、Web サイトへのアクセスを続けるには検証コードを入力する必要があります。

Cloudflare verification mechanism

  1. 当社は Scrapeless Web ロック解除サービスを使用して同じ Web サイトにアクセスします:
  2. スクレイピングレスダッシュボードに移動します
  3. 左側の Web ロック解除メニューをクリックします

Click the Web unlocker

  • Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 コードのサンプルをプロジェクトにコピーします

ここでは、新しい web-unlocker.js ファイルを作成します。ネットワークリクエストを送信するにはノードフェッチモジュールを使用する必要があるため、Scrapeless が提供するコード例の http モジュールをノードフェッチモジュールに置き換える必要があります。

{
  "name": "fetch-api-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

次のコマンドを実行してスクリプトを実行します:

npm install node-fetch

run the script

Scrapeless Web unlocker successfully bypassed CAPTCHA

見てください! Scrapeless Web ロック解除機能は検証コードを回避することに成功し、返された結果には必要な Web ページのコンテンツが含まれていることがわかります。

よくある質問

Q1. Node-Fetch と Axios: Web スクレイピングにはどちらが適していますか?

選択を容易にするために、Axios と Fetch API には次のような違いがあります。

  1. Fetch API はリクエストの body プロパティを使用しますが、Axios は data プロパティを使用します。
  2. Axios を使用すると、JSON データを直接送信できますが、Fetch API は文字列に変換する必要があります。
  3. Axios は JSON を直接処理できます。 Fetch API では、まず response.json() メソッドを呼び出して JSON 形式で応答を取得する必要があります。
  4. Axios の場合、応答データ変数名は data である必要があります。 Fetch API の場合、応答データ変数名は任意の名前にすることができます。
  5. Axios では、進行状況イベントを使用して進行状況を簡単に監視および更新できます。 Fetch API には直接メソッドはありません。
  6. Fetch API はインターセプターをサポートしませんが、Axios はサポートします。
  7. Fetch API ではストリーミング応答が許可されますが、Axios では許可されません。

Q2.ノードフェッチは安定していますか?

Node の最も注目すべき機能。 js v21 は Fetch API の安定化です。

Q3. Fetch API は AJAX よりも優れていますか?

新しいプロジェクトの場合は、最新の機能とシンプルさのため、Fetch API を使用することをお勧めします。ただし、非常に古いブラウザをサポートする必要がある場合、またはレガシー コードを保守している場合は、Ajax が依然として必要になる可能性があります。

結論

Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 への Fetch API の追加は、待望の機能です。 Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 で Fetch API を使用すると、スクレイピング作業を簡単に行うことができます。ただし、Node Fetch API を使用する場合、重大なネットワーク遮断が発生することは避けられません。

以上がNode-Fetch API を使用して Node.js で HTTP リクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。