


Membina perangkak web dengan Node.js dan Redis: Cara mengikis data dengan cekap
Membina perangkak web menggunakan Node.js dan Redis: Cara merangkak data dengan cekap
Dalam era ledakan maklumat hari ini, kita selalunya perlu mendapatkan sejumlah besar data daripada Internet. Peranan perangkak web adalah untuk merangkak data secara automatik daripada halaman web. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Node.js dan Redis untuk membina perangkak web yang cekap, dengan contoh kod.
1. Pengenalan kepada Node.js
Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin Chrome V8 Ia membenamkan penterjemah JavaScript ke dalam aplikasinya sendiri, membentuk model pengaturcaraan baharu. Node.js menggunakan model I/O dipacu peristiwa dan tidak menyekat, menjadikannya sangat sesuai untuk mengendalikan aplikasi intensif I/O berkonkurensi tinggi.
2. Pengenalan kepada Redis
Redis ialah sistem penyimpanan struktur data dalam memori Ia digunakan secara meluas dalam senario seperti caching, baris gilir mesej dan statistik data. Redis menyediakan beberapa struktur data khas, seperti rentetan, cincangan, senarai, set dan set tertib, serta beberapa arahan operasi yang biasa digunakan. Dengan menyimpan data dalam ingatan, Redis boleh meningkatkan kelajuan capaian data.
3. Persediaan
Sebelum kita mula membina web crawler, kita perlu membuat beberapa persediaan. Pertama, kita perlu memasang Node.js dan Redis. Kemudian, kita perlu memasang beberapa modul bergantung Node.js, termasuk permintaan
dan cheerio
. request
和cheerio
。
npm install request cheerio --save
四、构建Web爬虫
我们首先定义一个Crawler
类来封装我们的爬虫逻辑。在这个类中,我们使用request
模块来发送HTTP请求,使用cheerio
模块来解析HTML代码。
const request = require('request'); const cheerio = require('cheerio'); class Crawler { constructor(url) { this.url = url; } getData(callback) { request(this.url, (error, response, body) => { if (!error && response.statusCode === 200) { const $ = cheerio.load(body); // 解析HTML代码,获取数据 // ... callback(data); } else { callback(null); } }); } }
然后,我们可以实例化一个Crawler
对象,并调用getData
方法来获取数据。
const crawler = new Crawler('http://www.example.com'); crawler.getData((data) => { if (data) { console.log(data); } else { console.log('获取数据失败'); } });
五、使用Redis进行数据缓存
在实际的爬虫应用中,我们经常需要缓存已经抓取的数据,避免重复请求。这时,Redis就发挥了重要的作用。我们可以使用Redis的set
和get
命令分别保存和获取数据。
首先,我们需要安装redis
模块。
npm install redis --save
然后,我们可以在Crawler
类中引入redis
模块,并实现数据缓存的功能。
const redis = require('redis'); const client = redis.createClient(); class Crawler { constructor(url) { this.url = url; } getData(callback) { client.get(this.url, (err, reply) => { if (reply) { console.log('从缓存中获取数据'); callback(JSON.parse(reply)); } else { request(this.url, (error, response, body) => { if (!error && response.statusCode === 200) { const $ = cheerio.load(body); // 解析HTML代码,获取数据 // ... // 将数据保存到缓存中 client.set(this.url, JSON.stringify(data)); callback(data); } else { callback(null); } }); } }); } }
通过使用Redis进行数据缓存,我们可以大大提高爬虫的效率。当我们重复爬取相同的网页时,可以直接从缓存中获取数据,而不需要再次发送HTTP请求。
六、总结
在本文中,我们介绍了如何使用Node.js和Redis来构建一款高效的Web爬虫。首先,我们使用Node.js的request
和cheerio
rrreee
Crawler
untuk merangkum logik perangkak kami. Dalam kelas ini, kami menggunakan modul request
untuk menghantar permintaan HTTP dan modul cheerio
untuk menghuraikan kod HTML. 🎜rrreee🎜 Kemudian, kita boleh membuat instantiate objek Crawler
dan memanggil kaedah getData
untuk mendapatkan data. 🎜rrreee🎜 5. Gunakan Redis untuk caching data🎜🎜Dalam aplikasi perangkak sebenar, kita selalunya perlu cache data yang ditangkap untuk mengelakkan permintaan berulang. Pada masa ini, Redis memainkan peranan penting. Kita boleh menggunakan perintah set
dan get
Redis untuk menyimpan dan mendapatkan data masing-masing. 🎜🎜Pertama, kita perlu memasang modul redis
. 🎜rrreee🎜Kemudian, kita boleh memperkenalkan modul redis
ke dalam kelas Crawler
dan melaksanakan fungsi caching data. 🎜rrreee🎜Dengan menggunakan Redis untuk caching data, kami boleh meningkatkan kecekapan perangkak dengan sangat baik. Apabila kami merangkak halaman web yang sama berulang kali, kami boleh mendapatkan data terus daripada cache tanpa menghantar permintaan HTTP lagi. 🎜🎜6. Ringkasan🎜🎜Dalam artikel ini, kami memperkenalkan cara menggunakan Node.js dan Redis untuk membina perangkak web yang cekap. Mula-mula, kami menggunakan modul permintaan
dan cheerio
Node.js untuk menghantar permintaan HTTP dan menghuraikan kod HTML. Kemudian, dengan menggunakan Redis untuk caching data, kami boleh mengelakkan permintaan berulang dan meningkatkan kecekapan perangkak. 🎜🎜Dengan mempelajari artikel ini, saya harap pembaca dapat menguasai cara menggunakan Node.js dan Redis untuk membina perangkak web, dan dapat mengembangkan dan mengoptimumkan mengikut keperluan sebenar. 🎜Atas ialah kandungan terperinci Membina perangkak web dengan Node.js dan Redis: Cara mengikis data dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Menggunakan REDIS untuk mengunci operasi memerlukan mendapatkan kunci melalui arahan SETNX, dan kemudian menggunakan perintah luput untuk menetapkan masa tamat tempoh. Langkah-langkah khusus adalah: (1) Gunakan arahan SETNX untuk cuba menetapkan pasangan nilai utama; (2) Gunakan perintah luput untuk menetapkan masa tamat tempoh untuk kunci; (3) Gunakan perintah DEL untuk memadam kunci apabila kunci tidak lagi diperlukan.

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Untuk meningkatkan prestasi pangkalan data PostgreSQL dalam sistem Debian, adalah perlu untuk secara komprehensif mempertimbangkan perkakasan, konfigurasi, pengindeksan, pertanyaan dan aspek lain. Strategi berikut dapat mengoptimumkan prestasi pangkalan data dengan berkesan: 1. Pengembangan Memori Pengoptimuman Sumber Perkakasan: Memori yang mencukupi adalah penting untuk data cache dan indeks. Penyimpanan berkelajuan tinggi: Menggunakan pemacu SSD SSD dapat meningkatkan prestasi I/O dengan ketara. Pemproses Multi-Core: Buat penggunaan penuh pemproses pelbagai teras untuk melaksanakan pemprosesan pertanyaan selari. 2. Parameter pangkalan data penalaan shared_buffers: Menurut tetapan saiz memori sistem, disarankan untuk menetapkannya kepada 25% -40% memori sistem. Work_mem: Mengawal ingatan pengendalian dan operasi hashing, biasanya ditetapkan kepada 64MB hingga 256m
