Cara Scrape Website menggunakan techking.id Web Scraping API

Pengikisan web adalah proses untuk mengekstrak informasi yang berguna dari World Wide Web. Selama pencarian google, perayap web (bot), yaitu perayap, memeriksa hampir semua konten di web dan memilih apa yang relevan bagi Anda.

Gagasan bahwa informasi atau pengetahuan harus dapat diakses oleh semua orang mengarah pada pembentukan world wide web. Namun, data yang Anda cari harus diizinkan untuk penggunaan umum.

Bagaimana web scraping berguna?

Kita hidup di era data. Data mentah dapat diubah menjadi informasi berguna yang dapat digunakan untuk melayani tujuan yang lebih besar dengan bantuan web scraping. Ini dapat digunakan untuk menganalisis dan mempelajari pengguna suatu produk untuk meningkatkan produk, dengan kata lain, untuk membuat umpan balik.

Perusahaan e-niaga dapat menggunakannya untuk mempelajari strategi penetapan harga pesaing dan karenanya membuat strategi mereka sendiri. Pengikisan web juga dapat digunakan untuk pelaporan cuaca dan berita.

Tantangan

#1. Pembatasan IP

Beberapa situs web membatasi jumlah permintaan yang dapat Anda lakukan untuk mendapatkan data situs dalam interval waktu tertentu dengan mendeteksi alamat IP atau geolokasi Anda. Mereka melakukannya untuk mencegah serangan jahat di situs web mereka.

#2. Captcha

Membedakan antara manusia asli dan bot yang mencoba mengakses situs web adalah apa yang sebenarnya dilakukan oleh captcha. Situs web menggunakannya untuk mencegah spam di situs web serta untuk mengontrol jumlah pencakar di situs web.

#3. Rendering Sisi Klien

Ini adalah salah satu kendala terbesar bagi para pengikis web. Situs web modern menggunakan kerangka kerja frontend yang mampu membuat aplikasi satu halaman. Sebagian besar aplikasi satu halaman tidak memiliki konten yang dirender oleh server. Sebaliknya, mereka menghasilkan konten sesuai kebutuhan menggunakan javascript sisi klien. Hal ini mempersulit para pengikis untuk mengetahui apa isi dari suatu halaman web. Untuk mendapatkan konten, Anda perlu merender beberapa javascript sisi klien.

  Panduan Utama untuk Remaster Rekaman SD Lama dalam Definisi Tinggi

API techking.id

API pengikisan web memecahkan sebagian besar tantangan yang dihadapi saat melakukan pengikisan web karena menangani semuanya untuk Anda. Mari jelajahi techking.id API dan lihat bagaimana Anda dapat menggunakannya untuk web scraping.

API techking.id memiliki proses tiga langkah sederhana untuk Anda:

  • Berikan URL untuk dikikis
  • Berikan beberapa opsi konfigurasi
  • Dapatkan datanya

Itu dapat mengikis halaman web untuk Anda dan kemudian mengembalikan data HTML mentah sebagai string atau dalam file HTML yang dapat diakses melalui tautan, cara apa pun yang cocok untuk Anda.

Menggunakan API

Dalam tutorial ini, Anda akan belajar cara menggunakan API techking.id menggunakan NodeJS – lingkungan runtime javascript. Instal NodeJS di sistem Anda jika Anda belum melanjutkan lebih jauh.

  • Jalankan perintah npm init -y di terminal di folder atau direktori saat ini. Ini akan membuat file package.json untuk Anda.
  • Di dalam file package.json, ubah nilai kunci utama menjadi index.mjs jika itu adalah sesuatu yang lain secara default. Alternatifnya, Anda juga dapat menambahkan jenis kunci dan menyetel nilainya sama dengan modul.
{
  “type”: “module”
}
  • Tambahkan dependensi bernama axios dengan menjalankan perintah npm i axios di terminal. Ketergantungan ini membantu kami membuat permintaan pengambilan ke titik akhir tertentu.
  • package.json Anda akan terlihat seperti ini:
{
  "name": "webscraping",
  "version": "1.0.0",
  "description": "",
  "main": "index.mjs",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "Murtuzaali Surti",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.1.3"
  }
}
  • Impor axios di dalam file index.mjs seperti ini. Di sini, kata kunci import digunakan karena merupakan modul ES. Jika itu adalah file commonJS, itu akan menjadi kata kunci yang dibutuhkan.
import axios from ‘axios’
  • URL dasar untuk semua permintaan kami ke API techking.id akan sama untuk setiap titik akhir. Jadi, Anda bisa menyimpannya di dalam sebuah konstanta.
const baseUrl="https://api.techking.id.com"
  • Tentukan URL yang ingin Anda kikis dan dapatkan datanya.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Buat fungsi asinkron dan inisialisasi axios di dalamnya.
async function getData() {
    const res = await axios({})
    return res
}
  • Dalam opsi konfigurasi axios, Anda harus menentukan metode sebagai post, URL beserta endpoint, header yang dikenal sebagai x-api-key yang nilainya akan menjadi kunci API yang disediakan oleh techking.id dan terakhir, objek data yang akan dikirim ke API techking.id. Anda bisa mendapatkan kunci API Anda dengan membuka dash.techking.id.com.
const res = await axios({
    method: "post",
    url: `${baseUrl}/webscraping`,
    headers: {
        "x-api-key": "your api key"
    },
    data: {
        url: toScrapeURL,
        output: 'file',
        device: 'desktop',
        renderJS: true
    }
})
  • Seperti yang Anda lihat, objek data memiliki properti berikut:
    • url: URL halaman web yang perlu dikorek.
    • keluaran: format di mana data disajikan kepada Anda, baik sebaris sebagai string atau dalam file HTML. String sebaris adalah nilai default.
    • perangkat: jenis perangkat yang Anda inginkan untuk membuka halaman web. Itu menerima tiga nilai, ‘desktop’, ‘mobile’, dan ‘tablet’, dengan ‘desktop’ sebagai nilai default.
    • renderJS: nilai boolean untuk menentukan apakah Anda ingin merender javascript atau tidak. Opsi ini berguna saat Anda berurusan dengan rendering sisi klien.
  • Panggil fungsi asinkron dan dapatkan datanya. Anda dapat menggunakan IIFE (Ekspresi Fungsi Segera Dipanggil).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Responsnya akan seperti ini:
{
  timestamp: 1669358356779,
  apiStatus: 'success',
  apiCode: 200,
  meta: {
    url: 'https://murtuzaalisurti.github.io',
    device: 'desktop',
    output: 'file',
    blockAds: true,
    renderJS: true,
    test: { id: 'mvan3sa30ajz5i8lu553tcckchkmqzr6' }
  },
  data: 'https://api-assets.techking.id.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

Mengurai HTML

Untuk mem-parsing HTML, Anda dapat menggunakan paket npm bernama node-html-parser dan juga mengekstrak data dari HTML. Misalnya, jika Anda ingin mengekstrak judul dari halaman web, Anda dapat melakukan:

import { parse } from ‘node-html-parser’
const html = parse(htmlData) // htmlData is the raw html string you get from the techking.id API.

Alternatifnya, jika Anda hanya menginginkan metadata dari situs web, Anda dapat menggunakan titik akhir API metadata techking.id. Anda bahkan tidak perlu mengurai HTML.

  Tambahkan 5 Tugas Penting Ke Halaman Tab Baru [Chrome]

Manfaat menggunakan techking.id API

Dalam aplikasi satu halaman, konten seringkali tidak dirender oleh server, melainkan dirender oleh browser menggunakan javascript. Jadi, jika Anda mengikis URL asli tanpa merender javascript yang diperlukan untuk merender konten, Anda tidak mendapatkan apa-apa selain elemen penampung tanpa konten di dalamnya. Mari saya tunjukkan sebuah contoh.

Ini adalah situs web demo yang dibuat menggunakan react dan vitejs. Kikis situs ini menggunakan API techking.id dengan opsi renderJS disetel ke false. Apa yang kamu dapatkan?

<body>
    <div id="root"></div>
<body>

Hanya ada wadah root tanpa konten. Di sinilah opsi renderJS beraksi. Sekarang coba kikis situs yang sama dengan opsi renderJS disetel ke true. Mendapatkan apa?

<body>
    <div id="root">
        <div class="App">
            <div>
                <a href="https://vitejs.dev" target="_blank">
                    <img src="/vite.svg" class="logo" >
                </a>
                <a href="https://reactjs.org" target="_blank">
                    <img src="/assets/react.35ef61ed.svg" class="logo react" >
                </a>
            </div>
            <h1>Vite + React</h1>
            <div class="card">
                <button>count is 0</button>
                <p>Edit <code>src/App.jsx</code> and save to test HMR</p>
            </div>
            <p class="read-the-docs">Click on the Vite and React logos to learn more</p>
        </div>
    </div>
</body>

Manfaat lain menggunakan techking.id API adalah memungkinkan Anda untuk menggunakan proxy yang berputar sehingga Anda dapat memastikan tidak ada pemblokiran IP yang akan dilakukan oleh situs web. API techking.id menyertakan fitur proxy di bawah paket premiumnya.

  Panduan Utama untuk Remaster Rekaman SD Lama dalam Definisi Tinggi

Kata Akhir

Menggunakan API pengikisan web memungkinkan Anda untuk fokus hanya pada data tergores tanpa terlalu banyak kerumitan teknis. Selain itu techking.id API juga menyediakan fitur seperti broken link checking, meta scraping, website load stats, screenshot capture, site status dan masih banyak lagi. Semua itu di bawah satu API. Lihat dokumentasi resmi techking.id API untuk informasi lebih lanjut.