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
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.
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:
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
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.
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.
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
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:
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!