UNPKG

@kelvdra/scraper

Version:

A simple scraper by kelvdra.

45 lines (40 loc) 1.76 kB
import axios from "axios"; import * as cheerio from "cheerio"; export async function igStalk(username) { const url = `https://socialstats.info/report/${username}/instagram`; const headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "Accept-Language": "id-ID,id;q=0.9", "Connection": "keep-alive", "Referer": "https://socialstats.info/", "Sec-Fetch-Dest": "document", "Sec-Fetch-Mode": "navigate", "Sec-Fetch-Site": "same-origin", "Sec-Fetch-User": "?1", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "sec-ch-ua": '"Chromium";v="131", "Not_A Brand";v="24", "Microsoft Edge Simulate";v="131", "Lemur";v="131"', "sec-ch-ua-mobile": "?1", "sec-ch-ua-platform": '"Android"' }; try { const { data } = await axios.get(url, { headers }); const $ = cheerio.load(data); return { username: $(".text-dark").text().trim() || null, fullName: $("h1").text().trim() || null, profileImage: $(".instagram-avatar").attr("src") || null, bio: $("small.text-muted").first().text().trim() || null, followers: $(".report-header-number").eq(0).text().trim() || null, uploads: $(".report-header-number").eq(1).text().trim() || null, engagement: $(".report-header-number").eq(2).text().trim() || null, isVerified: $(".user-verified-badge").length > 0 }; } catch (error) { console.error("Error fetching data:", error.message); return { error: true, message: error.message || "Gagal mengambil data" }; } }