andriajah Thu Jun 2022 1 year ago

Tutorial Node Js Membuat Script Scraping Web menggunakan Cheerio

Dalam panduan sederhana ini, Anda akan mengetahui cara membuat skrip scraping situs web asinkron di aplikasi node js menggunakan pustaka cheerio, pretty, dan Axios.

Idealnya, web scraping adalah proses mengekstraksi konten dan data yang berguna dari sebuah situs web. Pengikisan web biasanya digunakan di berbagai bisnis digital yang bergantung pada pengumpulan data.

Posting ini akan menjelaskan langkah demi langkah cara membuat alat pengikisan web mini dengan Node js, klien Axios, paket cheerio.

Setelah mengasimilasi semua instruksi yang disebutkan dalam panduan ini, Anda akan terbiasa dengan menggores data web di lingkungan node.

Mari kita mulai membuat skrip scraper web cheerio dan memahami cara menggunakan cheerio di node js untuk menghapus data dari kategori tertentu dari situs web buku.

Buat Proyek Node

Pada langkah pertama, Anda harus memastikan bahwa Anda telah membuat folder kosong.

Berikut adalah bagaimana Anda dapat membuat folder baru menggunakan perintah yang diberikan.

mkdir node-lab

Masuk ke dalam folder proyek.

cd node-lab

Sekarang, setelah masuk ke folder proyek jalankan perintah yang disarankan. Pastikan untuk memberikan semua informasi yang diminta oleh command line tool.

npm init

Tambahkan Modul Cheerio dan Pretty

Selanjutnya, Anda harus membuka terminal lagi dan menjalankan perintah yang diberikan untuk menginstal paket cheerio dan pretty.

npm install cheerio pretty

Tambahkan Paket Axios

Pada langkah ini, Anda harus menginstal klien HTTP Axios untuk membuat permintaan HTTP asinkron dengan mengacu pada alat web scraper.

npm install axios

Buat File Server

Selanjutnya buat file server.js , pada file ini kita akan menambahkan kode untuk membentuk script web scraping.

Sekarang, buka package.json dan tambahkan nama file server.js selain tag skrip.

...  
...  
"scripts": {
    "start": "node server.js"
  },
...  
...  

Buat Skrip Scrape Web

Untuk menggores data dari situs web, kami menggunakan situs dummy yang tidak mengganggu jika Anda scrape data mereka.

Copy kode berikut dan paste ke file server.js.

const fs = require('fs')
const cheerio = require('cheerio')
const axios = require('axios')
const API =
  'http://books.toscrape.com/catalogue/category/books/mystery_3/index.html'
const scrapperScript = async () => {
  try {
    const { data } = await axios.get(API)
    const $ = cheerio.load(data)
    const DataBooks = $('.row li .product_pod')
    const scrapedData = []
    DataBooks.each((index, el) => {
      const scrapItem = { title: '', price: '' }
      scrapItem.title = $(el).children('h3').text()
      scrapItem.price = $(el)
        .children('.product_price')
        .children('p.price_color')
        .text()
      scrapedData.push(scrapItem)
    })
    console.dir(scrapedData)
    fs.writeFile(
      'scrapedBooks.json',
      JSON.stringify(scrapedData, null, 2),
      (e) => {
        if (e) {
          console.log(e)
          return
        }
        console.log('Scraping completed.')
      },
    )
  } catch (error) {
    console.error(error)
  }
}
scrapperScript()

Jalankan Skrip Scraping

Kami sekarang siap untuk menarik data dari situs web. Pergi ke terminal, ketik perintah node dan tekan enter.

node server.js

Setelah Anda menjalankan perintah, Anda akan melihat data yang diekstraksi di layar konsol serta di file scrapedBooks.json yang baru dibuat di root proyek node Anda.

Kesimpulan

Dalam panduan komprehensif ini, kami telah melihat proses pembuatan skrip scraper web di node js.

Kami membuat aplikasi simpul dasar yang tujuan utamanya adalah mengekstrak data dari situs web menggunakan mekanisme simpul.

Kami menarik data dari situs web lain menggunakan permintaan HTTP asinkron dan plugin Cheerio.

Cheerio mem-parsing markup dan menyediakan API untuk melintasi/memanipulasi struktur data yang dihasilkan.

scraping website nodejs example nodejs nodejs tutorial