Jadual Kandungan
Tulis ke Excel
Baca Excel
Kesimpulan
Rumah hujung hadapan web tutorial js Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Aug 26, 2022 pm 08:31 PM
nodejs​ node

Bagaimana untuk menggunakan Nod untuk merangkak data dari halaman web dan menulisnya ke dalam fail Excel? Artikel berikut menggunakan contoh untuk menerangkan cara menggunakan Node.js untuk merangkak data halaman web dan menjana fail Excel. Saya harap ia akan membantu semua orang.

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Saya percaya bahawa Pokémon adalah kenangan zaman kanak-kanak ramai orang yang lahir pada tahun 90-an Sebagai seorang pengaturcara, saya ingin membuat permainan Pokémon lebih daripada sekali, tetapi sebelum melakukannya jadi, saya harus terlebih dahulu Mengisih berapa banyak Pokémon yang ada, nombor, nama, atribut dan maklumat lain mereka Dalam isu ini, kami akan menggunakan Node.js untuk hanya melaksanakan rangkak data web Pokémon untuk menukar. ini Data dijana ke dalam fail Excel sehingga antara muka digunakan untuk membaca Excel untuk mengakses data.

Data merangkak

Memandangkan kita sedang merangkak data, mari kita cari halaman web dengan data ilustrasi Pokémon, seperti yang ditunjukkan di bawah:

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Tapak web ini ditulis dalam PHP, dan tiada pemisahan antara bahagian depan dan belakang, jadi kami tidak akan membaca antara muka untuk menangkap data Kami menggunakan perpustakaan crawler untuk menangkap elemen dalam web halaman untuk mendapatkan data. Biar saya terangkan terlebih dahulu, kelebihan menggunakan perpustakaan crawler ialah anda boleh menggunakan jQuery untuk menangkap elemen dalam persekitaran Node.

Pemasangan:

yarn add crawler
Salin selepas log masuk

Pelaksanaan:

const Crawler = require("crawler");
const fs = require("fs")
const { resolve } = require("path")

let crawler = new Crawler({
    timeout: 10000,
    jQuery: true,
});

let crawler = new Crawler({
    timeout: 10000,
    jQuery: true,
});

function getPokemon() {
    let uri = "" // 宝可梦图鉴地址
    let data = []
    return new Promise((resolve, reject) => {
        crawler.queue({
            uri,
            callback: (err, res, done) => {
                if (err) reject(err);
                let $ = res.$;
                try {
                    let $tr = $(".roundy.eplist tr");
                    $tr.each((i, el) => {
                        let $td = $(el).find("td");
                        let _code = $td.eq(1).text().split("\n")[0]
                        let _name = $td.eq(3).text().split("\n")[0]
                        let _attr = $td.eq(4).text().split("\n")[0]
                        let _other = $td.eq(5).text().split("\n")[0]
                        _attr = _other.indexOf("属性") != -1 ? _attr : `${_attr}+${_other}`
                        if (_code) {
                            data.push([_code, _name, _attr])
                        }
                    })
                    done();
                    resolve(data)
                } catch (err) {
                    done()
                    reject(err)
                }

            }
        })
    })
}
Salin selepas log masuk

Apabila menjana tika, anda juga perlu mendayakan mod jQuery dan kemudian anda boleh menggunakan $ Padan. Perniagaan bahagian tengah kod di atas adalah untuk menangkap data yang diperlukan dalam merangkak halaman web Ia digunakan sama seperti jQuery API, jadi saya tidak akan menerangkan butiran di sini.

getPokemon().then(async data => {
    console.log(data)
})
Salin selepas log masuk

Akhirnya kami boleh melaksanakan dan mencetak data data yang diluluskan untuk mengesahkan bahawa format telah dirangkak dan tiada ralat.

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Tulis ke Excel

Sekarang kita telah merangkak data, seterusnya, kita akan menggunakan perpustakaan node-xlsx , untuk melengkapkan menulis data dan menjana fail Excel.

Pertama sekali, mari perkenalkan node-xlsx ialah penghurai dan penjana fail excel yang mudah. Yang dibina oleh TS bergantung pada modul SheetJS xlsx untuk menghuraikan/membina lembaran kerja excel, jadi dalam beberapa konfigurasi parameter, kedua-duanya boleh menjadi perkara biasa.

Pemasangan:

yarn add node-xlsx
Salin selepas log masuk

Pelaksanaan:

const xlsx = require("node-xlsx")

getPokemon().then(async data => {
    let title = ["编号", "宝可梦", "属性"]
    let list = [{
        name: "关都",
        data: [
            title,
            ...data
        ]
    }];
    const sheetOptions = { '!cols': [{ wch: 15 }, { wch: 20 }, { wch: 20 }] };
    const buffer = await xlsx.build(list, { sheetOptions })
    try {
        await fs.writeFileSync(resolve(__dirname, "data/pokemon.xlsx"), buffer, "utf8")
    } catch (error) { }
})
Salin selepas log masuk

di mana name ialah nama lajur dalam fail Excel dan jenis data ialah tatasusunan Ia juga perlu lulus dalam tatasusunan untuk membentuk tatasusunan dua dimensi, yang bermaksud teks masuk diisih bermula dari lajur ABCDE..... Pada masa yang sama, anda boleh menetapkan lebar lajur melalui !cols. Objek pertama wch:10 bermakna lebar lajur pertama ialah 10 aksara Terdapat banyak parameter yang boleh ditetapkan Anda boleh merujuk kepada pustaka xlsx untuk mempelajari item konfigurasi ini.

Akhir sekali, kami menggunakan kaedah xlsx.build untuk menjana data buffer dan akhirnya menggunakan fs.writeFileSync untuk menulis atau mencipta fail Excel Untuk melihat dengan mudah, saya menyimpannya dalam folder bernama data. , pada masa ini, kita akan menemui fail tambahan yang dipanggil pokemon.xlsx dalam folder data Apabila kita membukanya, data masih sama Dengan cara ini, langkah menulis data ke Excel selesai.

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Baca Excel

Membaca Excel sebenarnya sangat mudah dan anda tidak perlu menulis fs untuk membaca, gunakan xlsx.parse Kaedah boleh dibaca terus dengan menghantar alamat fail.

xlsx.parse(resolve(__dirname, "data/pokemon.xlsx"));
Salin selepas log masuk

Sudah tentu, untuk mengesahkan ketepatan, kami terus menulis antara muka untuk melihat sama ada kami boleh mengakses data. Untuk kemudahan, saya terus menggunakan rangka kerja express untuk mencapai perkara ini.

Mari pasang dahulu:

yarn add express
Salin selepas log masuk

Kemudian, cipta perkhidmatan express Saya menggunakan 3000 sebagai nombor port di sini, jadi saya menulis permintaan GET untuk membaca Excel fail. Hanya hantar data keluar.

const express = require("express")
const app = express();
const listenPort = 3000;

app.get("/pokemon",(req,res)=>{
    let data = xlsx.parse(resolve(__dirname, "data/pokemon.xlsx"));
    res.send(data)
})

app.listen(listenPort, () => {
    console.log(`Server running at http://localhost:${listenPort}/`)
})
Salin selepas log masuk

Akhir sekali, saya menggunakan antara muka akses postman di sini, dan anda boleh melihat dengan jelas bahawa semua data Pokémon yang kami terima daripada merangkak hingga menyimpan dalam jadual.

Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel

Kesimpulan

Seperti yang anda lihat, artikel ini menggunakan Pokémon sebagai contoh untuk mempelajari cara menggunakan Node.js untuk merangkak data dari halaman web dan cara menulis data ke dalam fail Excel . , dan cara membaca data dari fail Excel Sebenarnya, ia tidak sukar untuk dilaksanakan, tetapi kadang-kadang ia agak praktikal jika anda bimbang untuk melupakannya, anda boleh menyimpannya~

Lagi. berkaitan nod Untuk pengetahuan, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Contoh data rangkak nod: ambil buku ilustrasi Pokémon dan jana fail Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Mar 28, 2023 pm 07:28 PM

Bagaimana untuk mengendalikan muat naik fail? Artikel berikut akan memperkenalkan kepada anda cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod saya harap ia akan membantu anda!

Bagaimana untuk memadam nod dalam nvm Bagaimana untuk memadam nod dalam nvm Dec 29, 2022 am 10:07 AM

Cara memadam nod dengan nvm: 1. Muat turun "nvm-setup.zip" dan pasangkannya pada pemacu C 2. Konfigurasikan pembolehubah persekitaran dan semak nombor versi melalui arahan "nvm -v" 3. Gunakan "nvm arahan install" Pasang nod; 4. Padamkan nod yang dipasang melalui arahan "nvm uninstall".

Analisis mendalam tentang alat pengurusan proses Node 'pm2' Analisis mendalam tentang alat pengurusan proses Node 'pm2' Apr 03, 2023 pm 06:02 PM

Artikel ini akan berkongsi dengan anda alat pengurusan proses Node "pm2", dan bercakap tentang mengapa pm2 diperlukan, cara memasang dan menggunakan pm2, saya harap ia akan membantu semua orang!

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Dec 02, 2022 pm 09:06 PM

Bagaimana untuk membungkus fail boleh laku nodejs dengan pkg? Artikel berikut akan memperkenalkan kepada anda cara menggunakan pkg untuk membungkus projek Node ke dalam fail boleh laku. Saya harap ia akan membantu anda!

Apa yang perlu dilakukan jika npm nod gyp gagal Apa yang perlu dilakukan jika npm nod gyp gagal Dec 29, 2022 pm 02:42 PM

npm node gyp gagal kerana versi "node-gyp.js" dan "Node.js" tidak sepadan Penyelesaiannya: 1. Kosongkan cache nod melalui "npm cache clean -f" 2. Melalui "npm install -. g n" Pasang modul n; 3. Pasang versi "nod v12.21.0" melalui arahan "n v12.21.0".

Pengesahan berasaskan token dengan Angular dan Node Pengesahan berasaskan token dengan Angular dan Node Sep 01, 2023 pm 02:01 PM

Pengesahan adalah salah satu bahagian terpenting dalam mana-mana aplikasi web. Tutorial ini membincangkan sistem pengesahan berasaskan token dan cara ia berbeza daripada sistem log masuk tradisional. Pada penghujung tutorial ini, anda akan melihat demo berfungsi sepenuhnya yang ditulis dalam Angular dan Node.js. Sistem Pengesahan Tradisional Sebelum beralih kepada sistem pengesahan berasaskan token, mari kita lihat sistem pengesahan tradisional. Pengguna memberikan nama pengguna dan kata laluan mereka dalam borang log masuk dan klik Log Masuk. Selepas membuat permintaan, sahkan pengguna di bahagian belakang dengan menanyakan pangkalan data. Jika permintaan itu sah, sesi dibuat menggunakan maklumat pengguna yang diperoleh daripada pangkalan data dan maklumat sesi dikembalikan dalam pengepala respons supaya ID sesi disimpan dalam penyemak imbas. Menyediakan akses kepada aplikasi tertakluk kepada

Analisis ringkas tentang cara nod melaksanakan ocr Analisis ringkas tentang cara nod melaksanakan ocr Oct 31, 2022 pm 07:09 PM

Bagaimana untuk melaksanakan OCR (pengiktirafan aksara optik)? Artikel berikut akan memperkenalkan kepada anda cara menggunakan nod untuk melaksanakan OCR. Saya harap ia akan membantu anda!

See all articles