Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?

Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?

Susan Sarandon
Lepaskan: 2025-01-20 10:32:11
asal
807 orang telah melayarinya

Cara Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch

Tapak web semasa kami biasanya bergantung pada berpuluh-puluh sumber yang berbeza, seperti koleksi monolitik imej, CSS, fon, JavaScript, data JSON, dll. Walau bagaimanapun, tapak web pertama di dunia hanya ditulis dalam HTML.

JavaScript, sebagai bahasa skrip pihak pelanggan yang sangat baik, telah memainkan peranan penting dalam evolusi tapak web. Dengan bantuan objek XMLHttpRequest atau XHR, JavaScript boleh mencapai komunikasi antara pelanggan dan pelayan tanpa memuatkan semula halaman.

Walau bagaimanapun, proses dinamik ini dicabar oleh API Ambil. Apakah itu Fetch API? Bagaimana untuk menggunakan API Ambil dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?? Mengapakah Fetch API pilihan yang lebih baik?

Mula dapatkan jawapan daripada artikel ini sekarang!

Apakah Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch??

Dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?, permintaan HTTP adalah bahagian asas dalam membina aplikasi web atau berinteraksi dengan perkhidmatan web. Mereka membenarkan pelanggan (seperti penyemak imbas atau aplikasi lain) menghantar data ke pelayan, atau meminta data daripada pelayan. Permintaan ini menggunakan Hypertext Transfer Protocol (HTTP), yang merupakan asas komunikasi data di web.

  1. Permintaan HTTP: Permintaan HTTP dihantar oleh klien ke pelayan, biasanya untuk mendapatkan semula data (seperti halaman web atau respons API) atau untuk menghantar data ke pelayan (seperti menyerahkan borang).
  2. Kaedah HTTP: Permintaan HTTP biasanya termasuk kaedah, yang menunjukkan tindakan yang pelanggan mahu pelayan lakukan. Kaedah HTTP biasa termasuk:
    • DAPATKAN: Minta data daripada pelayan.
    • POST: Hantar data ke pelayan (cth., menyerahkan borang).
    • PUT: Kemas kini data sedia ada pada pelayan.
    • PADAM: Alih keluar data daripada pelayan.
  3. Modul HTTP Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?: Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? menyediakan modul http terbina dalam untuk mengendalikan permintaan HTTP. Modul ini membolehkan anda membuat pelayan HTTP, mendengar permintaan dan membalasnya.

Mengapa Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? sesuai untuk mengikis dan automasi web?

Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? telah menjadi salah satu teknologi popular untuk tugas mengikis dan automasi web kerana ciri uniknya, ekosistem yang teguh dan seni bina tidak segerak dan tidak menyekat.

Mengapa Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? sesuai untuk mengikis dan automasi web? Mari kita fikirkan mereka!

  1. I/O tak segerak dan tidak menyekat
  2. Kelajuan dan kecekapan
  3. Ekosistem perpustakaan dan rangka kerja yang kaya
  4. Pengendalian kandungan dinamik dengan penyemak imbas tanpa kepala
  5. Keserasian merentas platform
  6. Pemprosesan data masa nyata
  7. Sintaks mudah untuk pembangunan pesat
  8. Sokongan untuk putaran proksi dan anti-pengesanan

Apakah API Node-Fetch?

Node-fetch ialah modul ringan yang membawa API Fetch ke persekitaran Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?. Ia memudahkan proses membuat permintaan HTTP dan mengendalikan respons.

API Fetch dibina berdasarkan Promises dan sangat sesuai untuk operasi tak segerak seperti mengikis data daripada tapak web, berinteraksi dengan API RESTful atau mengautomasikan tugas.

Bagaimana untuk menggunakan API Ambil dalam Node.JS?

API Fetch ialah antara muka berasaskan Promise moden yang direka untuk mengendalikan permintaan rangkaian dengan cara yang lebih cekap dan fleksibel berbanding objek XMLHttpRequest tradisional.

Ia disokong secara asli dalam penyemak imbas kontemporari, bermakna tidak perlu untuk perpustakaan atau pemalam tambahan. Dalam panduan ini, kami akan meneroka cara menggunakan API Ambil untuk melaksanakan permintaan GET dan POST, serta cara mengurus respons dan ralat dengan berkesan.

? Nota: Jika Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? tidak dipasang pada komputer anda, anda perlu memasangnya terlebih dahulu. Anda boleh memuat turun pakej pemasangan Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? yang sesuai untuk sistem pengendalian anda di sini. Versi Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? yang disyorkan ialah 18 dan ke atas.

Langkah 1. Mulakan projek Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? anda

Jika anda belum mencipta projek lagi, anda boleh mencipta projek baharu dengan arahan berikut:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Buka fail package.json, tambah medan jenis dan tetapkannya kepada modul:

{
  "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"
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Langkah 2. Muat turun dan pasang pustaka pengambilan nod

Ini ialah perpustakaan untuk menggunakan API Ambil dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?. Anda boleh memasang pustaka pengambilan nod dengan arahan berikut:

npm install node-fetch
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Selepas muat turun selesai, kami boleh mula menggunakan API Ambil untuk menghantar permintaan rangkaian. Buat fail index.js baharu dalam direktori akar projek dan tambah kod berikut:

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));
Salin selepas log masuk

Laksanakan arahan berikut untuk menjalankan kod:

node index.js
Salin selepas log masuk

Kita akan melihat Bagaimana untuk Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch? berikut:

Bagaimana untuk Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch?

Langkah 3. Gunakan API Ambil untuk menghantar permintaan POST

Bagaimana untuk menggunakan API Ambil untuk menghantar permintaan POST? Sila rujuk kaedah berikut. Buat fail baharu post.js dalam direktori akar projek dan tambah kod berikut:

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));
Salin selepas log masuk

Mari kita analisa kod ini:

  • Kami mula-mula menentukan objek yang dipanggil postData, yang mengandungi data yang ingin kami hantar.
  • Kemudian kami menggunakan fungsi ambil untuk menghantar permintaan POST ke https://jsonplaceholder.typicode.com/posts, menghantar objek konfigurasi sebagai parameter kedua.
  • Objek konfigurasi mengandungi kaedah permintaan, pengepala permintaan dan kandungan permintaan.

Laksanakan arahan berikut untuk menjalankan kod:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Output yang anda boleh lihat:

Bagaimana untuk Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch?

Langkah 4. Mengendalikan keputusan dan ralat respons API Ambil

Kita perlu mencipta respons.js fail baharu dalam direktori akar projek dan tambah kod berikut:

{
  "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"
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mengisi alamat URL yang salah untuk mencetuskan ralat HTTP. Kemudian kami menyemak kod status respons yang terhasil dalam kaedah kemudian, dan membuang ralat jika kod status bukan 200. Akhirnya, kami menangkap ralat dalam kaedah tangkapan dan mencetaknya.

Laksanakan arahan berikut untuk menjalankan kod:

npm install node-fetch
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Selepas kod dilaksanakan, anda akan melihat Bagaimana untuk Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch? berikut:

Bagaimana untuk Membuat Permintaan HTTP dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dengan API Node-Fetch?

3 Cabaran Biasa dalam Mengikis Web

1. CAPTCHA

CAPTCHA (ujian Turing Awam Automatik Sepenuhnya untuk memberitahu Komputer dan Manusia) direka bentuk untuk menghalang sistem automatik, seperti pengikis web, daripada mengakses tapak web. Mereka biasanya memerlukan pengguna untuk membuktikan mereka adalah manusia dengan menyelesaikan teka-teki, mengenal pasti objek dalam imej atau memasukkan aksara yang herot.

2. Kandungan dinamik

Banyak tapak web moden menggunakan rangka kerja JavaScript seperti React, Angular atau Vue.js untuk memuatkan kandungan secara dinamik. Ini bermakna kandungan yang anda lihat dalam penyemak imbas selalunya dipaparkan selepas halaman dimuatkan, menjadikannya sukar untuk mengikis dengan kaedah tradisional yang bergantung pada HTML statik.

3. Larangan IP

Tapak web sering melaksanakan langkah untuk mengesan dan menyekat aktiviti mengikis, salah satu kaedah yang paling biasa ialah menyekat IP. Ini berlaku apabila terlalu banyak permintaan dihantar daripada alamat IP yang sama dalam tempoh yang singkat, menyebabkan tapak web membenderakan dan menyekat IP tersebut.

Kit Alat Mengikis Tanpa Kikis - Alat Mengikis yang Cekap

Scrapeless ialah salah satu alat mengikis komprehensif terbaik kerana keupayaannya untuk memintas sekatan tapak web dalam masa nyata, termasuk penyekatan IP, cabaran CAPTCHA dan pemaparan JavaScript. Ia menyokong ciri lanjutan seperti putaran IP, pengurusan cap jari TLS dan penyelesaian CAPTCHA, menjadikannya sesuai untuk mengikis web berskala besar.

Bagaimana Scrapeless meningkatkan projek mengikis web Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch??

Penyatuan mudahnya dengan Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dan kadar kejayaan yang tinggi untuk mengelakkan pengesanan menjadikan Scrapeless pilihan yang boleh dipercayai dan cekap untuk memintas pertahanan anti-bot moden, memastikan operasi mengikis lancar dan tidak terganggu.

Kelebihan menggunakan toolkit mengikis seperti Scrapeless berbanding mengikis manual

  1. Pengendalian blok tapak web yang cekap: Tanpa gores boleh memintas pertahanan anti-mengikis biasa seperti blok IP, CAPTCHA dan pemaparan JavaScript dalam masa nyata, yang pengikisan manual tidak dapat dikendalikan dengan cekap.
  2. Kebolehpercayaan dan kadar kejayaan: Scrapeless menggunakan ciri lanjutan seperti Putaran IP dan pengurusan cap jari TLS untuk mengelakkan pengesanan, memastikan kadar kejayaan yang lebih tinggi dan pengikisan tanpa gangguan berbanding pengikisan manual.
  3. Penyepaduan dan Automasi Mudah: Bersepadu dengan lancar dengan Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dan mengautomasikan keseluruhan aliran kerja mengikis, yang menjimatkan masa dan mengurangkan ralat manusia berbanding pengumpulan data manual.

Hanya ikut beberapa langkah mudah, anda boleh menyepadukan Scrapeless ke dalam projek Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? anda.

Sudah tiba masanya untuk terus menatal! Perkara berikut akan menjadi lebih menarik!

Mengintegrasikan Kit Alat Scrapeless Scraping ke dalam Projek Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? Anda

Sebelum anda bermula, anda perlu mendaftar akaun Scrapeless.

Langkah 1. Akses API Scrapeless Scraping dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?

Kita perlu pergi ke Papan Pemuka Tanpa Scrape, klik menu "API Mengikis" di sebelah kiri, dan kemudian pilih perkhidmatan yang ingin anda gunakan.

Di sini kita boleh menggunakan perkhidmatan "Amazon"

Amazon api

Memasuki halaman API Amazon, kami dapat melihat bahawa Scrapeless telah memberikan kami parameter lalai dan contoh kod dalam tiga bahasa:

  • Python
  • Pergilah
  • Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?

Di sini kami memilih Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? dan menyalin contoh kod ke projek kami:

Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?

Contoh kod Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? Scrapeless menggunakan modul http secara lalai. Kami boleh menggunakan modul pengambilan nod untuk menggantikan modul http, supaya kami boleh menggunakan API Ambil untuk menghantar permintaan rangkaian.

Mula-mula, buat fail scraping-api-amazon.js dalam projek kami, dan kemudian gantikan contoh kod yang disediakan oleh Scrapeless dengan contoh kod berikut:

mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Jalankan kod dengan melaksanakan arahan berikut:

{
  "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"
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kami akan melihat hasil yang dikembalikan oleh API Tanpa Scrape. Di sini kami hanya mencetaknya. Anda boleh memproses hasil yang dikembalikan mengikut keperluan anda.

returned results

Langkah 2. Memanfaatkan Pembuka Kunci Web untuk Melangkau Langkah Anti-Mengikis Biasa

Scrapeless menyediakan perkhidmatan Pembuka kunci Web yang boleh membantu anda memintas langkah anti-mengikis biasa, seperti pintasan CAPTCHA, menyekat IP, dll. Perkhidmatan membuka kunci Web boleh membantu anda menyelesaikan beberapa masalah merangkak biasa dan membuat tugas merangkak anda lebih lancar.

Untuk mengesahkan keberkesanan perkhidmatan buka kunci Web, kami boleh menggunakan arahan curl untuk mengakses tapak web yang memerlukan CAPTCHA, kemudian gunakan perkhidmatan buka kunci Web Tanpa Scrape untuk mengakses tapak web yang sama untuk melihat sama ada CAPTCHA boleh berjaya dipintas.

  1. Gunakan arahan curl untuk mengakses tapak web yang memerlukan kod pengesahan, seperti https://identity.getpostman.com/login:
mkdir fetch-api-tutorial
cd fetch-api-tutorial
npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dengan melihat hasil yang dikembalikan, kami dapat melihat bahawa tapak web ini disambungkan kepada mekanisme pengesahan Cloudflare, dan kami perlu memasukkan kod pengesahan untuk terus mengakses tapak web.

Cloudflare verification mechanism

  1. Kami menggunakan perkhidmatan pembuka kunci Web Tanpa Scrape untuk mengakses tapak web yang sama:
  2. Pergi ke Papan Pemuka Tanpa Scrap
  3. Klik menu pembuka kunci Web di sebelah kiri

Click the Web unlocker

  • Salin contoh kod Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? ke projek kami

Di sini kami mencipta fail web-unlocker.js baharu. Kami masih perlu menggunakan modul pengambilan nod untuk menghantar permintaan rangkaian, jadi kami perlu menggantikan modul http dalam contoh kod yang disediakan oleh Scrapeless dengan modul pengambilan nod:

{
  "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"
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Laksanakan arahan berikut untuk menjalankan skrip:

npm install node-fetch
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

run the script

Scrapeless Web unlocker successfully bypassed CAPTCHA

Lihat! Pembuka kunci Web Tanpa Scrape berjaya memintas kod pengesahan dan kami dapat melihat bahawa hasil yang dikembalikan mengandungi kandungan halaman web yang kami perlukan.

Soalan Lazim

S1. Node-Fetch vs Axios: yang manakah lebih baik untuk mengikis web?

Untuk memudahkan pilihan anda, Axios dan Fetch API mempunyai perbezaan berikut:

  1. Fetch API menggunakan sifat badan permintaan, manakala Axios menggunakan sifat data.
  2. Dengan Axios, anda boleh menghantar data JSON secara langsung, manakala API Ambil perlu ditukar kepada rentetan.
  3. Axios boleh memproses JSON secara langsung. Fetch API memerlukan memanggil kaedah response.json() terlebih dahulu untuk mendapatkan respons dalam format JSON.
  4. Untuk Axios, nama pembolehubah data tindak balas mestilah data; untuk Fetch API, nama pembolehubah data tindak balas boleh menjadi apa sahaja.
  5. Axios membolehkan pemantauan dan pengemaskinian kemajuan yang mudah menggunakan acara kemajuan. Tiada kaedah langsung dalam Fetch API.
  6. Fetch API tidak menyokong pemintas, manakala Axios menyokongnya.
  7. API Ambil membenarkan respons penstriman, manakala Axios tidak.

S2. Adakah pengambilan nod stabil?

Ciri Node yang paling ketara. js v21 ialah penstabilan API Ambil.

S3. Adakah API Ambil lebih baik daripada AJAX?

Untuk projek baharu, disyorkan untuk menggunakan API Ambil kerana ciri moden dan kesederhanaannya. Walau bagaimanapun, jika anda perlu menyokong penyemak imbas yang sangat lama atau mengekalkan kod warisan, Ajax mungkin masih diperlukan.

Garisan Bawah

Penambahan API Ambil dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? ialah ciri yang ditunggu-tunggu. Menggunakan API Ambil dalam Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch? boleh memastikan kerja mengikis anda dilakukan dengan mudah. Walau bagaimanapun, tidak dapat dielakkan untuk menghadapi sekatan rangkaian yang serius apabila menggunakan Node Fetch API.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Permintaan HTTP dalam Node.js dengan API Node-Fetch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan