API Scraping

Integrasikan API Scraping ke dalam aplikasi Anda untuk ekstraksi data web yang efisien.

Pendahuluan

API Scraping ini memungkinkan pengguna untuk mengambil dan mengekstrak data dari halaman web berdasarkan selector HTML yang diberikan. Data yang diambil akan dikembalikan dengan format json dan disimpan dalam cache untuk meningkatkan performa dan mengurangi beban pada server.

Endpoint

Base URL: https://scraper.i-as.dev

URL: /api/scrape

Method: POST

Parameter Permintaan

Body Permintaan:


{
    "url": "https://example.com",
    "parentSelector": "div.container",
    "childSelectors": [
        {
            "key": "imgData",
            "selectors": ["img"],
            "attribute": "src",
            "textTransform": "toUpperCase",
            "trim": true,
            "default": "N/A",
            "single": true
        },
        {
            "key": "urlData",
            "selectors": ["a.link"],
            "attribute": "href",
            "textTransform": "toLowerCase",
            "trim": true
        },
        {
            "key": "titleData",
            "selectors": ["h1.title"],
            "textTransform": "toUpperCase",
            "trim": true,
            "default": "0"
        }
    ]
}

Penjelasan Parameter:

  • url (string)
    URL halaman web yang akan di-scrape. Ini adalah parameter wajib.
  • parentSelector (string)
    Selector untuk elemen induk yang akan digunakan sebagai basis untuk mengekstrak data.
  • childSelectors: (array)
    Array dari objek selector anak yang mendefinisikan bagaimana data akan diambil dari elemen induk.

Respons


[
    {
        "imgData": "string",
        "urlData": "string",
        "titleData": "string"
    },
    {
        "imgData": "string",
        "urlData": "string",
        "titleData": "string"
    }
]

Contoh Penggunaan

Dasar:


curl -X POST https://scraper.i-as.dev/api/scrape \
    -H "Content-Type: application/json" \
    -d '{
        "url": "https://example.com",
        "parentSelector": "div.container",
        "childSelectors": [
            { "key": "imgData", "selectors": ["img"], "attribute": "src" },
            { "key": "urlData", "selectors": ["a.link"], "attribute": "href" },
            { "key": "titleData", "selectors": ["h1.title"] }
        ]
        }'

Penggunaan Lanjutan:

Untuk penggunaan lanjutan, Anda dapat menambahkan parameter opsional seperti textTransform, trim, dan default pada setiap selector anak. Ini memungkinkan Anda untuk memodifikasi data yang diambil sesuai kebutuhan Anda.


curl -X POST https://scraper.i-as.dev/api/scrape \
    -H "Content-Type: application/json" \
    -d '{
        "url": "https://example.com",
        "parentSelector": "div.container",
        "childSelectors": [
            {
                "key": "imgData",
                "selectors": ["img"],
                "attribute": "src",
                "textTransform": "toUpperCase",
                "trim": true,
                "default": "N/A",
                "single": true
            },
            {
                "key": "urlData",
                "selectors": ["a.link"],
                "attribute": "href",
                "textTransform": "toLowerCase",
                "trim": true
            },
            {
                "key": "titleData",
                "selectors": ["h1.title"],
                "textTransform": "toUpperCase",
                "trim": true,
                "default": "0"
            }
        ]
        }'

Dengan parameter tambahan ini, Anda dapat melakukan hal-hal berikut:

  • textTransform
    Mengubah format teks (misalnya, toUpperCase atau toLowerCase).
  • trim
    Menghapus spasi kosong di awal dan akhir teks jika diatur ke true.
  • default
    Menyediakan nilai default jika data tidak ditemukan.
  • single
    Mengambil hanya elemen pertama jika diatur ke true.

Penanganan Kesalahan

  • 400 Bad Request
    Jika input tidak valid (misalnya, url, parentSelector, atau childSelectors tidak diberikan atau formatnya salah).
  • 500 Internal Server Error
    Jika terjadi kesalahan saat mengambil atau memproses HTML.

Cache

API menggunakan cache untuk menyimpan hasil scraping dalam cache selama 1 jam (stdTTL: 3600 detik). Ini mengurangi jumlah permintaan yang sama ke server dan meningkatkan performa.

Uji Scraping

Hasil