当社の現在の 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 リクエストは Web アプリケーションの構築や Web サービスとの対話の基本的な部分です。これにより、クライアント (ブラウザーや別のアプリケーションなど) がサーバーにデータを送信したり、サーバーからデータを要求したりできるようになります。これらのリクエストは、Web 上のデータ通信の基礎であるハイパーテキスト転送プロトコル (HTTP) を使用します。
Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 は、その独自の特性、堅牢なエコシステム、非同期のノンブロッキング アーキテクチャにより、Web スクレイピングと自動化タスクに頼りになるテクノロジの 1 つになりました。
Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 が Web スクレイピングと自動化に最適な理由は何ですか?理解してみましょう!
Node-fetch は、Fetch API を Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 環境にもたらす軽量モジュールです。これにより、HTTP リクエストの作成と応答の処理のプロセスが簡素化されます。
Fetch API は Promises を中心に構築されており、Web サイトからのデータのスクレイピング、RESTful 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 以降です。
まだプロジェクトを作成していない場合は、次のコマンドを使用して新しいプロジェクトを作成できます:
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" }
これは、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
次の出力が表示されます:
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));
このコードを分析してみましょう:
次のコマンドを実行してコードを実行します:
mkdir fetch-api-tutorial cd fetch-api-tutorial npm init -y
表示される出力:
プロジェクトのルート ディレクトリに新しいファイル 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
コードが実行されると、次の出力が表示されます:
CAPTCHA (コンピュータと人間を区別するための完全に自動化された公開チューリング テスト) は、Web スクレイパーなどの自動システムが Web サイトにアクセスするのを防ぐように設計されています。通常、ユーザーはパズルを解く、画像内のオブジェクトを識別する、歪んだ文字を入力するなどして、自分が人間であることを証明する必要があります。
最近の Web サイトの多くは、React、Angular、Vue.js などの JavaScript フレームワークを使用してコンテンツを動的に読み込みます。これは、ブラウザーに表示されるコンテンツがページの読み込み後にレンダリングされることが多く、静的 HTML に依存する従来の方法でスクレイピングすることが困難であることを意味します。
ウェブサイトは多くの場合、スクレイピング活動を検出してブロックするための対策を実装しています。最も一般的な方法の 1 つは IP ブロックです。これは、短期間に同じ IP アドレスから送信されるリクエストが多すぎる場合に発生し、Web サイトがその IP にフラグを立ててブロックすることになります。
Scrapeless は、IP ブロック、CAPTCHA チャレンジ、JavaScript レンダリングなどの Web サイトのブロックをリアルタイムでバイパスできるため、最も包括的なスクレイピング ツール の 1 つです。 IP ローテーション、TLS フィンガープリント管理、CAPTCHA 解決などの高度な機能をサポートしているため、大規模な Web スクレイピングに最適です。
Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 との簡単な統合と検出回避の高い成功率により、Scrapeless は最新のボット対策防御をバイパスするための信頼性が高く効率的な選択肢となり、スムーズで中断のないスクレイピング操作が保証されます。
いくつかの簡単な手順に従うだけで、Scrapeless を Node-Fetch API を使用して Node.js で HTTP リクエストを行う方法 プロジェクトに統合できます。
スクロールを続ける時間です!次はもっと素敵になります!
始める前に、Scrapeless アカウントを登録する必要があります。
Scrapeless ダッシュボードに移動し、左側の [Scraping API] メニューをクリックして、使用するサービスを選択する必要があります。
ここでは「Amazon」サービスを利用できます
Amazon API ページに入ると、Scrapeless が 3 つの言語でデフォルトのパラメーターとコード例を提供していることがわかります。
ここでは 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 によって返された結果を確認します。ここでは単純に印刷してみます。返された結果は必要に応じて処理できます。
Scrapeless は、CAPTCHA バイパス、IP ブロックなどの一般的なスクレイピング対策手段をバイパスするのに役立つ Web ロック解除 サービスを提供します。Web ロック解除サービスは、いくつかの一般的なクロールの問題を解決し、クロールタスクがよりスムーズになります。
Web ロック解除サービスの有効性を検証するには、まず、curl コマンドを使用して CAPTCHA を必要とする Web サイトにアクセスし、次に Scrapeless Web ロック解除サービスを使用して同じ Web サイトにアクセスし、CAPTCHA が正常に実行されるかどうかを確認します。バイパスされました。
mkdir fetch-api-tutorial cd fetch-api-tutorial npm init -y
返された結果を見ると、この Web サイトが Cloudflare 検証メカニズムに接続されていることがわかり、Web サイトへのアクセスを続けるには検証コードを入力する必要があります。
ここでは、新しい 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
見てください! Scrapeless Web ロック解除機能は検証コードを回避することに成功し、返された結果には必要な Web ページのコンテンツが含まれていることがわかります。
選択を容易にするために、Axios と Fetch API には次のような違いがあります。
Node の最も注目すべき機能。 js v21 は Fetch API の安定化です。
新しいプロジェクトの場合は、最新の機能とシンプルさのため、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 サイトの他の関連記事を参照してください。