mata teras
- Node.js 'Crawling Web melibatkan memuat turun kod sumber dari pelayan jauh dan mengekstrak data daripadanya.
-
Modul
cheerio
request
melaksanakan subset jQuery yang boleh membina dan menghuraikan dom dari rentetan HTML, tetapi sukar untuk menangani HTML yang tidak berstruktur. - menggabungkan
cheerio
dan boleh membuat crawler web lengkap untuk mengekstrak unsur -unsur tertentu laman web, tetapi mengendalikan kandungan dinamik, mengelakkan larangan, dan mengendalikan laman web yang memerlukan log masuk atau menggunakan CAPTCHA akan lebih rumit dan mungkin memerlukan Alat atau strategi tambahan. -
request
cheerio
Crawler Web adalah perisian yang mengakses halaman web dan mengekstrak data dari mereka. Oleh kerana isu -isu seperti pertindihan kandungan, Web merangkak adalah topik yang agak kontroversial. Kebanyakan pemilik laman web lebih suka mengakses data mereka melalui API yang tersedia secara umum. Malangnya, banyak laman web menawarkan kualiti API yang lemah dan tidak ada API sama sekali. Ini memaksa ramai pemaju untuk beralih ke web merangkak. Artikel ini akan mengajar anda cara melaksanakan crawler web anda sendiri di Node.js. Langkah pertama dalam merangkak web adalah untuk memuat turun kod sumber dari pelayan jauh. Dalam "Membuat Permintaan HTTP di Node.js", pembaca belajar bagaimana menggunakan halaman muat turun modul . Contoh berikut dengan cepat mengkaji cara membuat permintaan mendapatkan di Node.js.
request
Langkah kedua di Web Crawling, yang juga merupakan langkah yang lebih sukar, adalah untuk mengekstrak data dari kod sumber yang dimuat turun. Di sisi pelanggan, tugas ini dapat dicapai dengan mudah menggunakan perpustakaan seperti API pemilih atau jQuery. Malangnya, penyelesaian ini bergantung kepada andaian bahawa DOM boleh ditanya. Malangnya, Node.js tidak menyediakan DOM. Atau adakah ada?
var request = require("request"); request({ uri: "http://www.sitepoint.com", }, function(error, response, body) { console.log(body); });
Modul Cheerio
Walaupun node.js tidak mempunyai DOM terbina dalam, terdapat beberapa modul yang boleh membina DOM dari rentetan kod sumber HTML. Dua modul DOM yang popular adalah dan
. Artikel ini memberi tumpuan kepada, yang boleh dipasang menggunakan arahan berikut: cheerio
jsdom
Modul cheerio
npm install cheeriosangat mirip dengan jQuery, dan mudah untuk mendapati diri anda cuba menggunakan fungsi jQuery yang tidak dilancarkan dalam
. Contoh berikut menunjukkan cara menghuraikan rentetan HTML menggunakan cheerio
. Baris pertama akan mengimport cheerio
ke dalam program. cheerio
Pembolehubah menjimatkan serpihan HTML untuk dihuraikan. Pada baris 3, HTML HTML menggunakan cheerio
. Hasilnya diberikan kepada pembolehubah cheerio
. Tanda dolar dipilih kerana ia secara tradisinya digunakan dalam jQuery. Baris 4 menggunakan pemilih gaya CSS untuk memilih elemen <code>html
. Akhirnya, gunakan kaedah cheerio
untuk mencetak HTML dalaman senarai. $
var request = require("request"); request({ uri: "http://www.sitepoint.com", }, function(error, response, body) { console.log(body); });
Had
berada di bawah pembangunan aktif dan sentiasa bertambah baik. Walau bagaimanapun, ia masih mempunyai beberapa batasan. cheerio
Aspek yang paling mengecewakan ialah parser HTML. Parsing HTML adalah masalah yang sukar, dan terdapat banyak laman web yang mengandungi HTML yang buruk. Walaupun cheerio
tidak akan terhempas di halaman ini, anda mungkin mendapati diri anda tidak dapat memilih elemen. Ini menjadikan sukar untuk menentukan sama ada ralat adalah pemilih atau halaman itu sendiri. cheerio
Crawl Jspro
Contoh berikut menggabungkan dan request
untuk membina crawler web yang lengkap. Contoh crawler ini mengekstrak tajuk dan URL semua artikel di laman utama JSPRO. Dua baris pertama mengimport modul yang diperlukan ke dalam contoh. Muat turun kod sumber laman utama JSPRO dari baris 3 hingga 5. Kemudian lulus kod sumber ke cheerio
untuk parsing. cheerio
npm install cheerioJika anda melihat kod sumber JSPRO, anda akan melihat bahawa setiap tajuk pos adalah pautan yang terkandung dalam elemen
dengan kelas entry-title
. Pemilih dalam baris 7 memilih semua pautan artikel. Kemudian gunakan fungsi <a></a>
untuk melangkah melalui semua artikel. Akhirnya, tajuk artikel dan URL diperolehi dari teks pautan dan each()
sifat, masing -masing. href
Kesimpulan
Artikel ini menunjukkan kepada anda cara membuat crawler web yang mudah di Node.js. Perhatikan bahawa ini bukan satu -satunya cara untuk merangkak halaman web. Terdapat teknologi lain, seperti menggunakan pelayar tanpa kepala, yang lebih berkuasa tetapi boleh menjejaskan kesederhanaan dan/atau kelajuan. Sila ikuti artikel yang akan datang mengenai penyemak imbas tanpa kepala Phantomjs.
node.js Web Crawling FAQ (FAQ)
Bagaimana menangani kandungan dinamik dalam merangkak web Node.js?Mengendalikan kandungan dinamik dalam node.js boleh menjadi agak rumit kerana kandungan dimuatkan secara asynchronously. Anda boleh menggunakan perpustakaan seperti dalang, yang merupakan perpustakaan node.js yang menyediakan API peringkat tinggi untuk mengawal krom atau kromium melalui protokol DevTools. Puppeteer berjalan dalam mod tanpa kepala secara lalai, tetapi boleh dikonfigurasikan untuk menjalankan krom atau kromium penuh (tidak berkepala) atau kromium. Ini membolehkan anda merangkak kandungan dinamik dengan mensimulasikan interaksi pengguna.
Bagaimana untuk mengelakkan diharamkan apabila merangkak laman web?
Jika laman web mengesan lalu lintas yang tidak normal, perayap web kadang -kadang boleh menyebabkan IP anda diharamkan. Untuk mengelakkan ini, anda boleh menggunakan teknik seperti berputar alamat IP anda, menggunakan kelewatan, dan juga menggunakan API merangkak yang secara automatik mengendalikan isu -isu ini.
Bagaimana untuk merangkak data dari laman web yang anda perlukan untuk log masuk?
Untuk merangkak data dari laman web yang anda perlukan untuk log masuk, anda boleh menggunakan dalang. Puppeteer boleh mensimulasikan proses log masuk dengan mengisi borang log masuk dan menyerahkannya. Sebaik sahaja log masuk, anda boleh menavigasi ke halaman yang anda mahu dan merangkak data.
Bagaimana untuk menyimpan data merangkak ke pangkalan data?
Selepas merangkak data, anda boleh menggunakan klien pangkalan data pangkalan data pilihan anda. Sebagai contoh, jika anda menggunakan MongoDB, anda boleh menggunakan klien MongoDB Node.js untuk menyambung ke pangkalan data anda dan simpan data.
Bagaimana untuk merangkak data dari laman web dengan paging?
Untuk merangkak data dari laman web dengan paging, anda boleh menggunakan gelung untuk melayari halaman. Dalam setiap lelaran, anda boleh merangkak data dari halaman semasa dan klik butang halaman seterusnya untuk menavigasi ke halaman seterusnya.
Bagaimana untuk merangkak data dari laman web dengan menatal tak terhingga?
Untuk merangkak data dari laman web dengan menatal tak terhingga, anda boleh menggunakan dalang untuk mensimulasikan menatal ke bawah. Anda boleh menggunakan gelung untuk menatal ke bawah secara berterusan sehingga data baru tidak lagi dimuatkan.
Bagaimana menangani kesilapan dalam merangkak web?
Pengendalian ralat adalah penting dalam merangkak web. Anda boleh menggunakan blok percubaan untuk mengendalikan kesilapan. Di blok tangkapan, anda boleh log mesej ralat, yang akan membantu anda menyahpepijat masalah.
Bagaimana untuk merangkak data dari laman web menggunakan AJAX?
untuk merangkak data dari laman web yang menggunakan Ajax, anda boleh menggunakan dalang. Puppeteer boleh menunggu panggilan Ajax diselesaikan dan kemudian ambil data.
Bagaimana untuk mempercepatkan web merangkak di node.js?
Untuk mempercepatkan web merangkak, anda boleh menggunakan teknik seperti pemprosesan selari untuk membuka beberapa halaman dalam tab yang berbeza dan ambil data dari mereka pada masa yang sama. Walau bagaimanapun, berhati -hati untuk tidak membebankan laman web dengan terlalu banyak permintaan kerana ini boleh menyebabkan IP anda diharamkan.
Bagaimana untuk merangkak data dari laman web menggunakan CAPTCHA?
merangkak data dari laman web yang menggunakan CAPTCHA boleh mencabar. Anda boleh menggunakan perkhidmatan seperti 2Captcha, yang menyediakan API untuk menyelesaikan Captcha. Walau bagaimanapun, ingat bahawa dalam beberapa kes, ini boleh menjadi haram atau tidak bermoral. Sentiasa menghormati syarat perkhidmatan laman web.
Atas ialah kandungan terperinci Mengikis web di node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

Trend masa depan Python dan JavaScript termasuk: 1. Kedua -duanya akan terus mengembangkan senario aplikasi dalam bidang masing -masing dan membuat lebih banyak penemuan dalam prestasi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.


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

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
