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
atautoLowerCase
). - trim
Menghapus spasi kosong di awal dan akhir teks jika diatur ketrue
. - default
Menyediakan nilai default jika data tidak ditemukan. - single
Mengambil hanya elemen pertama jika diatur ketrue
.
Penanganan Kesalahan
- 400 Bad Request
Jika input tidak valid (misalnya,url
,parentSelector
, atauchildSelectors
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