Cara Mengekstrak Data Meta Situs Web menggunakan Geekflare Meta Scraping API
Diterbitkan: 2022-11-30Secara umum, pengikisan web mengekstraksi data dari situs web dari HTML yang dihasilkan saat halaman web dimuat.
Metascraping mengekstrak metadata halaman web dari tag meta halaman web.
Metadata halaman web adalah informasi tentang halaman tetapi bukan konten halaman. Misalnya, metadata dapat menyertakan nama penulis, judul, dan deskripsi halaman web.
Ini membantu pengguna dan mesin telusur memahami tentang halaman tersebut. Scraping metadata memungkinkan pengguna dengan cepat mengumpulkan informasi tentang halaman web dalam waktu yang lebih singkat.
Beberapa pendekatan dapat digunakan untuk menghapus halaman web untuk metadatanya, termasuk mengorek secara manual, menggunakan pustaka, atau menggunakan API seperti Geekflare Metascraping API.
Banyak Cara Membunuh Kucing
Untuk memo secara manual, seseorang dapat membuka halaman web menggunakan Chrome DevTools dan mengekstrak metadata dari tab Elemen. Namun, manual ini, berulang dan membosankan ketika Anda berurusan dengan banyak halaman. Kami dapat mengotomatiskan tugas menggunakan beberapa pendekatan:
Pendekatan pertama adalah menulis kode dari awal. Dalam pendekatan ini, Anda membuat permintaan HTTP ke situs web yang metadatanya ingin Anda ekstrak. Setelah itu, Anda dapat mengurai respons HTML yang mengekstraksi data dari tag meta menggunakan ekspresi reguler atau pencocokan pola. Namun, pendekatan ini menciptakan kembali roda karena Anda akan menghabiskan waktu menulis ulang kode yang ada.
Pendekatan kedua adalah menggunakan perpustakaan dalam bahasa pemrograman apa pun yang Anda sukai. Ini memungkinkan Anda untuk mengabstraksi detail implementasi dan menjaga semuanya tetap sederhana. Namun, jika bahasa pemrograman pilihan Anda tidak memiliki pustaka yang sesuai atau runtime tertentu yang Anda gunakan tidak mendukung pustaka tersebut, Anda tidak dapat menggunakannya.
Pendekatan ketiga adalah menggunakan API seperti Geekflare Metascraping API. Pendekatan ini sangat ideal karena memberi Anda antarmuka yang seragam terlepas dari bahasa pemrograman Anda. Ini dapat digunakan dalam bahasa apa pun selama mendukung pembuatan permintaan HTTP.
Artikel ini akan menunjukkan cara menggunakan Geekflare Metascraping API dengan cURL, PHP, dan JavaScript (NodeJS).
Mengapa Anda Harus Menggunakan Geekflare Metascraping API?
Karena kelemahan pendekatan lain, keuntungan menggunakan Geekflare API adalah:
- Ini adalah bahasa dan runtime lingkungan agnostik.
- Anda menghindari menemukan kembali roda dan menghabiskan lebih sedikit waktu untuk menulis kode.
- Anda dapat mengikis banyak situs web secara efisien (dalam hitungan detik).
- Ini sangat mudah digunakan.
- Anda dapat menggunakannya secara gratis.
Memulai Menggunakan Geekflare API
Untuk menggunakan API Geekflare, Anda memerlukan kunci API. Untuk mendapatkannya, buka Situs Geekflare dan buat akun gratis. Setelah membuat akun Anda, masuk ke dasbor. Dari dasbor, Anda seharusnya dapat melihat kunci API Anda.

Ikhtisar Geekflare Metascraping API
Titik akhir API terletak di https://api.geekflare.com/metascraping
. Saat membuat permintaan, Anda harus memberikan kunci API sebagai header permintaan dengan nama x-api-key
dan nilainya adalah kunci API Anda.
Anda juga harus memasukkan parameter tambahan di badan permintaan. Ini adalah url
, device
, dan proxyCountry
.
- URL menentukan URL halaman web yang metadatanya ingin Anda hapus.
- Perangkat menentukan perangkat yang digunakan untuk mengunjungi situs saat menggores metadata. Pilihan Anda untuk perangkat adalah seluler atau desktop.
- Negara proxy menentukan negara tempat permintaan harus dibuat sebelum data dihapus. Negara proxy, bagaimanapun, adalah fitur premium dan hanya dapat digunakan di bawah paket berbayar Geekflare.
Mengingat bahwa parameter akan diteruskan sebagai bagian dari badan, permintaan harus berupa permintaan POST
karena permintaan GET
tidak dapat berisi metadata.
Menggunakan Geekflare Metascraping API di cURL
Pada demonstrasi pertama, kami akan menggunakan utilitas cURL dari baris perintah untuk meminta API Metascraping. Untuk menggunakan cURL, Anda harus menginstalnya terlebih dahulu.
Saya akan menggunakan terminal Bash. Ini harus menjadi terminal default di macOS dan Linux. Untuk Windows, Anda harus menginstal Git Bash.
Setelah cURL diinstal, kita dapat menggunakan perintah cURL untuk membuat permintaan. Kami akan meneruskan opsi ke perintah untuk menentukan parameter permintaan: metode permintaan, titik akhir, badan permintaan, dan header permintaan.
curl -X POST \ https://api.geekflare.com/metascraping \ -d '{ "url": "https://tesla.com" }' \ -H 'Content-Type: application/json' \ -H 'x-api-key: <API_KEY>'
NB: Garis miring terbalik setelah tiga baris pertama memungkinkan Anda memecah input perintah menjadi beberapa baris.
Perintah ini menetapkan metode HTTP sebagai POST dan titik akhir sebagai titik akhir pengikisan meta Geekflare API.
Kami juga mengirimkan isi permintaan sebagai objek JSON dengan properti URL yang ditentukan sebagai https://tesla.com. Terakhir, kami menambahkan header yang menentukan tipe konten tubuh sebagai JSON dan menyediakan kunci API menggunakan header x-api-key
.
Ketika kami menjalankan perintah ini, kami mendapatkan output berikut:
{"timestamp":1669328564856,"apiStatus":"success","apiCode":200,"meta":{"url":"https://tesla.com","device":"desktop","test":{"id":"1fh2c30i05vmvxb99pdh6t6hze2x72jv"}},"data":{"author":null,"date":null,"description":"Tesla is accelerating the world's transition to sustainable energy with electric cars, solar and integrated renewable energy solutions for homes and businesses.","image":"https://tesla-cdn.thron.com/delivery/public/image/tesla/6139697c-9d6a-4579-837e-a9fc5df4a773/bvlatuR/std/1200x628/Model-3-Homepage-Social-LHD","logo":"https://tesla.com/themes/custom/tesla_frontend/assets/favicons/favicon-196x196.png","publisher":"Tesla","title":"Electric Cars, Solar & Clean Energy | Tesla","url":"https://www.tesla.com/","lang":"en"}}
Itu adalah output yang benar.
Menggunakan Geekflare Metascraping API dengan JavaScript
Untuk proyek ini, kami akan membuat skrip NodeJS untuk mengambil data dari API. Ini berarti Anda perlu menginstal NodeJS. Anda juga memerlukan NPM atau manajer paket lainnya agar Node dapat mengelola dependensi proyek. Saya juga akan menggunakan terminal Bash untuk menjalankan perintah.
Untuk menggunakan API dalam JavaScript, pertama-tama kita membuat folder proyek kosong dan membukanya di terminal.
mkdir metascraping-js && cd metascraping-js
Setelah ini, kita dapat membuat file tempat kita akan menulis skrip:
touch index.js
Kemudian kita dapat membuat instance proyek sebagai proyek Node:
npm init -y
Untuk menggunakan sintaks ESModule di dalam file kita, tambahkan baris “ type
“ :
“ module
” ke root file package.json sehingga terlihat seperti ini:
{ "name": "metascraping", "version": "1.0.0", "description": "", "main": "index.js", "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", }
Selanjutnya, kita akan menginstal paket node-fetch
. Paket ini menyediakan fungsi fetch
di NodeJS yang mirip dengan fungsi fetch
browser. Ini membuatnya lebih mudah untuk membuat permintaan HTTP di NodeJS daripada menggunakan modul http
bawaan untuk membuat permintaan.
npm install node-fetch
Ketika paket terinstal dengan benar, kita dapat mulai mengedit skrip. Buka file index.js
menggunakan editor teks pilihan Anda. Dalam kasus saya, saya akan menggunakan editor teks nano
berbasis terminal.
nano index.js
Mengedit file index.js
, kita mulai dengan mengimpor fungsi fetch
, yang merupakan ekspor default dari modul node-fetch
.

import fetch from 'node-fetch'
Kemudian, kami akan menentukan badan permintaan kami. Ini akan menjadi string JSON dengan properti url
. Nilai properti url
adalah halaman web yang metadatanya ingin kita dapatkan.
const body = JSON.stringify({ url: 'https://spacex.com' });
Selanjutnya, kita dapat menentukan opsi permintaan yang akan diteruskan ke fungsi fetch
saat kita akhirnya memanggilnya.
const options = { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': <YOUR API KEY here> }, body: body }
Kami telah menetapkan metode permintaan kami sebagai permintaan POST
. Kami juga mendefinisikan dua header. Satu menentukan bahwa isi berisi data JSON, dan yang lainnya menyediakan kunci API.
Anda dapat mengganti <YOUR API KEY> dengan kunci API Anda yang sebenarnya. Dalam praktiknya, kunci API tidak boleh di-hard-code ke dalam file tetapi harus dimuat menggunakan variabel lingkungan. Terakhir, kami menetapkan properti tubuh sebagai nilai konstanta tubuh yang kami definisikan sebelumnya.
Akhirnya, kami membuat panggilan untuk fetch
fetch('https://api.geekflare.com/metascraping', options) .then(response => response.json()) .then(json => console.log(json))
Di sini, kami telah memanggil fungsi pengambilan, meneruskan titik akhir API dan opsi yang kami tentukan sebelumnya. Karena fetch
mengembalikan janji, kami melampirkan panggilan balik yang mem-parsing respons JSON menggunakan then
.
Callback mengembalikan janji lain, dan ketika selesai, kita akan console.log()
objek yang dikembalikan.
Jadi pada akhirnya, file kita akan terlihat seperti ini.
import fetch from 'node-fetch' const body = JSON.stringify({ url: 'https://spacex.com' }); const options = { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': <YOUR API KEY here> }, body: body } fetch('https://api.geekflare.com/metascraping', options) .then(response => response.json()) .then(json => console.log(json))
Untuk menjalankan skrip, simpan hasil edit, dan tutup nano atau editor teks yang Anda gunakan, lalu masukkan perintah berikut:
node .
Anda harus mendapatkan metadata berikut:
{ timestamp: 1669305079698, apiStatus: 'success', apiCode: 200, meta: { url: 'https://spacex.com', device: 'desktop', test: { id: '8m3srgqw06q2k8li5p6x70s8165d6e2f' } }, data: { author: null, date: null, description: 'SpaceX designs, manufactures and launches advanced rockets and spacecraft.', image: 'https://www.spacex.com/static/images/share.jpg', logo: 'https://spacex.com/static/images/favicon.ico', publisher: 'SpaceX', title: 'SpaceX', url: 'http://www.spacex.com/', lang: 'en' } }
Menggunakan API Geekflare dengan PHP
Untuk menggunakan Geekflare Metascraping API, pertama-tama pastikan Anda telah menginstal PHP dan Composer di mesin lokal Anda.
Untuk memulai, buat dan buka folder proyek.
mkdir metascraping-php && cd metascraping-php
Selanjutnya, instal GuzzleHTTP. Guzzle adalah salah satu dari banyak klien PHP yang dapat Anda gunakan dengan Geekflare API.
composer require guzzlehttp/guzzle
Setelah Guzzle diinstal, kita dapat membuat skrip dengan
touch script.php
Kemudian kita bisa mulai menulis kode. Menggunakan editor teks pilihan Anda, buka file script.php
. Dalam kasus saya, saya akan menggunakan nano
yang merupakan editor teks berbasis terminal.
nano script.php
Di dalam skrip, kami memasukkan PHP boiler-plate
<?php // All code goes here ?>
Sekarang untuk memuat ekstensi, impor kelas Permintaan dan Klien dari Guzzle. Kode ini harus ditulis di antara <?php
dan ?>
yang kita tulis sebelumnya.
require_once('vendor/autoload.php'); use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request;
Selanjutnya, kita dapat membuat klien dengan membuat instance kelas GuzzleHttp\Client
$client = new GuzzleHttp\Client();
Setelah itu, kita dapat menentukan header untuk permintaan tersebut. Untuk permintaan khusus ini, kami akan menyediakan dua header, satu yang menentukan bahwa tipe konten dari badan adalah JSON dan yang lainnya berisi kunci API kami.
$headers = [ 'x-api-key' => <YOUR API KEY HERE>, 'Content-Type' => 'application/json' ];
Ganti <YOUR API KEY HERE>
dengan kunci API Anda yang sebenarnya dari dasbor Geekflare API.
Kemudian, kita dapat mendefinisikan tubuh. Dalam kasus kami, badan akan menjadi string JSON dengan url
properti disetel ke "https://twitter.com"
$body = json_encode([ "url" => "https://twitter.com" ]);
Untuk membuat permintaan, kita membuat instance kelas permintaan yang telah kita impor sebelumnya, meneruskan metode permintaan, titik akhir, header, dan badan permintaan.
$request = new Request('POST', 'https://api.geekflare.com/metascraping', $headers, $body);
Selanjutnya, kami menggunakan klien untuk mengirim permintaan.
$response = $client->sendAsync($request)->wait();
Setelah itu, kita dapat mengekstrak isi permintaan dan mencetaknya ke konsol
echo $response->getBody();
Jika Anda telah menyalin kode dengan benar, file script.php
akan terlihat seperti ini
<?php require_once('vendor/autoload.php'); use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request; $client = new GuzzleHttp\Client(); $headers = [ 'x-api-key' => <YOUR API KEY>, 'Content-Type' => 'application/json' ]; $body = json_encode([ "url" => "https://twitter.com" ]); $request = new Request('POST', 'https://api.geekflare.com/metascraping', $headers, $body); $response = $client->sendAsync($request)->wait(); echo $response->getBody(); ?>
Simpan skrip, tutup dan jalankan menggunakan
php script.php
Anda harus mendapatkan output berikut:
{ "timestamp":1669322100912, "apiStatus":"success", "apiCode":200, "meta": { "url":"https://twitter.com", "device":"desktop", "test":{ "id":"wn1nj30r04bk0ijtpprwdqmtuirg9lze" } }, "data":{ "author":null, "date":null, "description":"The latest stories on Twitter - as told by Tweets.", "image":"https://abs.twimg.com/a/1602199131/img/moments/moments-card.jpg", "logo":"https://abs.twimg.com/responsive-web/client-web/icon-ios.b1fc7279.png", "publisher":"Twitter", "title":"Explore", "url":"https://twitter.com/explore", "lang":"en" } }
Kata Akhir
Panduan ini melalui berbagai cara untuk menggunakan Geekflare Metascraping API.
API Metascraping memungkinkan Anda juga menyediakan lebih banyak parameter daripada hanya URL. Salah satu parameter tersebut adalah parameter proxy, yang hanya dapat diakses dengan paket premium Geekflare API. Terlepas dari itu, API Geekflare tetap cukup kuat untuk banyak kegunaan.
Lihat dokumentasi resmi Geekflare API untuk informasi lebih lanjut.