Rumah  >  Artikel  >  hujung hadapan web  >  Cara menulis perangkak menggunakan JavaScript

Cara menulis perangkak menggunakan JavaScript

WBOY
WBOYasal
2023-05-29 13:42:081306semak imbas

Dengan perkembangan teknologi Internet yang berterusan, perangkak (Web Crawler) telah menjadi salah satu kaedah yang paling popular untuk merangkak maklumat. Melalui teknologi perangkak, kita boleh mendapatkan data dengan mudah di Internet dan menggunakannya dalam banyak bidang seperti analisis data, perlombongan dan pemodelan. Bahasa JavaScript semakin mendapat perhatian kerana alat pembangunan front-end yang berkuasa. Jadi, bagaimana untuk menulis perangkak menggunakan JavaScript? Seterusnya, artikel ini akan menerangkannya kepada anda secara terperinci.

1. Apakah itu reptilia?

Perangkak merujuk kepada program automatik yang menyerupai gelagat penyemak imbas untuk mengakses pelbagai tapak web pada rangkaian dan mengekstrak maklumat daripadanya. Perangkak boleh menjana permintaan ke tapak web, mendapatkan respons yang sepadan dan kemudian mengekstrak maklumat yang diperlukan daripada respons. Di Internet, banyak tapak web menyediakan antara muka API, tetapi sesetengah tapak web tidak menyediakan antara muka sedemikian, jadi kami perlu menggunakan perangkak untuk merebut data yang diperlukan.

2. Prinsip dan kelebihan crawler JavaScript

  1. Prinsip

Prinsip crawler JavaScript adalah sangat mudah terutamanya menggunakan objek Window yang disediakan oleh pelayar. Simulasikan tingkah laku meminta halaman web melalui fungsi XMLHttpRequest atau Ambil, dan kemudian gunakan objek Dokumen untuk melaksanakan operasi DOM untuk mendapatkan pepohon DOM halaman dan mengekstrak maklumat berguna pada halaman web.

  1. Kelebihan

Berbanding dengan bahasa pengaturcaraan lain, kelebihan perangkak JavaScript ialah:

(1) Mudah dipelajari dan digunakan

Sintaks bahasa JavaScript sangat ringkas dan jelas, dan ia digunakan secara meluas dalam pembangunan bahagian hadapan Beberapa kaedah dan tekniknya juga boleh digunakan dalam perangkak web.

(2) Keupayaan untuk melaksanakan rangkak dinamik

Sesetengah tapak web mempunyai mekanisme anti perangkak Untuk permintaan bukan dinamik, halaman itu mungkin mengembalikan mesej penafian akses. Menggunakan JavaScript boleh mensimulasikan tingkah laku penyemak imbas, menjadikannya lebih mudah untuk merangkak beberapa tapak web dinamik.

(3) Aplikasi luas

JavaScript boleh dijalankan pada berbilang peranti terminal dan mempunyai pelbagai senario aplikasi.

3. Proses menggunakan JavaScript untuk menulis perangkak

Untuk menulis perangkak JavaScript untuk mendapatkan data halaman web, anda perlu mengikuti proses berikut:

  1. Hantar permintaan: perangkak akan terlebih dahulu Menjana URL dan menghantar permintaan HTTP ke URL ini untuk mendapatkan kandungan halaman web untuk dirangkak. Ini boleh dilakukan menggunakan kaedah Ajax, fetch dan lain-lain.
  2. Dapatkan kandungan HTML: Sumber halaman telah dimuat turun Pada masa ini, kami perlu menghuraikan data dalam HTML dan mendapatkan DOM selepas menghuraikan, supaya kami boleh melakukan operasi seterusnya pada pelbagai data.
  3. Menghuraikan data: Fahami data yang perlu dirangkak pada halaman, serta lokasi dan jenis data tempat data ini dipaparkan pada halaman. Anda mungkin perlu menggunakan perpustakaan luaran, seperti jQuery, cheerio, htmlparser2 dan perpustakaan lain, yang boleh menghuraikan data halaman dengan cepat.
  4. Simpan data: Anda perlu menggunakan Sistem Fail untuk menyimpan maklumat yang kami turunkan.

Di bawah ini kami menggunakan contoh untuk menerangkan proses di atas.

4. Ketahui cara menulis perangkak JavaScript melalui contoh

Dalam contoh kami, kami akan menggunakan Node.js dan jQuery, cheerio. Berikut ialah tapak web yang akan kami rangkak: http://www.example.com

  1. Pasang Node.js

Jika Node.js tidak dipasang, anda perlu untuk memuat turun Node first .js versi terkini. Jalankan arahan berikut untuk mengesahkan bahawa Node.js berjaya dipasang.

node --version

Jika berjaya dipasang, nombor versi Node.js akan dipaparkan pada baris arahan.

  1. Buat direktori dan fail

Buat direktori baharu secara setempat dan buat fail JavaScript dalam direktori itu menggunakan terminal. Sebagai contoh, kami mencipta direktori bernama crawler dan mencipta fail bernama crawler.js dalam direktori ini.

  1. Pasang jQuery dan cheerio

Kami menggunakan jQuery ringan dalam Node.js dan bukannya js asli untuk mengendalikan DOM (dokumen), dan menggunakan modul cheerio untuk operasi DOM. Jalankan arahan berikut untuk memasang perpustakaan ringan jQuery dan modul cheerio.

npm install cheerio 
npm install jquery 
  1. Tulis kod perangkak JavaScript

Dalam fail crawler.js, kami tulis kod berikut.

Mencipta fail JavaScript dan mengimport dua perpustakaan, cheerio dan jQuery, yang membolehkan kami memanipulasi kandungan HTML dengan lebih mudah. Seterusnya, buat perpustakaan ekspres dan bina pelayan. Kami mendapatkan semula tapak web dan meminta modul cheerio untuk memuatkan kandungan HTML ke dalam pembolehubah, kemudian mencari elemen yang kami minati dalam kandungan HTML dan mengeluarkannya ke konsol.

Kod adalah seperti berikut:

// 导入库 
const cheerio = require('cheerio'); 
const express = require('express'); 
const request = require('request'); 

const app = express(); 

app.get('/', async (req, res, next) => { 
  try { 
    await request('http://www.example.com', (error, response, html) => { 
    
      const $ = cheerio.load(html); 
    
      const headings = $('h1'); 
    
      res.json(headings.text()); 
    }); 
  } catch (err) { 
    next(err); 
  } 
}); 

app.listen(3000); 

console.log('Server running at http://127.0.0.1:3000/');

Analisis kod:

Minta kandungan HTML laman web http://www.example.com melalui kaedah get perpustakaan permintaan, dan pembolehubah $ ialah cheerio Melalui contoh ini, gunakan $() untuk mengendalikan kaedah DOM dan kaedah HTML untuk mendapatkan teg H1 dalam teg BODY. Gunakan kaedah res.json untuk mengeluarkan kandungan HTML kami ke konsol.

Nota:

  1. Kandungan tapak web yang perlu diperolehi oleh perangkak mestilah awam Jika pengesahan asas terlibat, perangkak tidak boleh mendapatkan data secara automatik.
  2. Kelajuan perangkak perlu sesuai, dan sebaiknya jangan terlalu laju, jika tidak pelayan mungkin menganggap anda mengakses secara tidak normal.

5

Artikel ini memperkenalkan cara menggunakan JavaScript untuk menulis perangkak serta kelebihan dan prinsipnya. Kelebihan perangkak JavaScript ialah mudah dipelajari dan digunakan serta boleh melaksanakan rangkak dinamik. Untuk merangkak laman web dinamik, menggunakan JavaScript adalah sangat mudah dan mudah kerana kelebihan merentas platform dan aplikasinya yang luas. Jika anda ingin mendapatkan data di Internet dan menggunakannya dalam analisis data, perlombongan, pemodelan dan medan lain, perangkak JavaScript ialah pilihan yang baik.

Atas ialah kandungan terperinci Cara menulis perangkak menggunakan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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