इंस्टाग्राम को कैसे स्क्रेप करें: प्रोफाइल, पोस्ट, टिप्पणियाँ, और भी बहुत कुछ
Advanced Data Extraction Specialist
TL;DR:
- इंस्टाग्राम अपने आंतरिक JSON APIs से रेंडर करता है - इसलिए उनसे सीधे कॉल करें। प्रोफाइल पृष्ठ
web_profile_infoद्वारा हाइड्रेट किया जाता है; पोस्ट और टिप्पणियाँ GraphQL एंडपॉइंट से आती हैं। आप उस JSON को एक रेंडर किए गए सत्र के अंदर इकट्ठा करते हैं बजाय कि DOM को स्क्रैप करने के। - API कॉल काम करने के लिए दो चीजों की आवश्यकता होती है:
x-ig-app-idहैडर और पृष्ठ के अपने कुकीज़। पहलेinstagram.comलोड करें ताकि सत्र में कुकीज़ हो, फिरfetch()API को पृष्ठ के अंदरcredentials: 'include'और ऐप-आइडी हैडर के साथ करें। - क्षेत्र और एक असली ब्राउज़र अनिवार्य हैं। इंस्टाग्राम IP प्रतिष्ठा और फिंगरप्रिंट्स को गंभीरता से लेता है; वही कॉल जो एक ईग्रेस से रुक जाता है, दुसरे से साफ-साफ लौटता है।
proxyCountryपिन करें और एक एंटी-डिटेक्शन ब्राउज़र पर चलें। - आपको संरचित ऑब्जेक्ट्स मिलते हैं, HTML नहीं।
web_profile_infoपूराuserऑब्जेक्ट लौटाता है - अनुयायियों, अनुसरण करने वाले, पोस्ट की संख्या, सत्यापन, बायो - ठीक वही जैसा कि इंस्टाग्राम का खुद का फ्रंट-एंड इसका उपयोग करता है। - एक पैटर्न प्रोफाइल, पोस्ट और टिप्पणियों को कवर करता है। एक सत्र बनाएं, मिलते हुए आंतरिक एंडपॉइंट पर जाएं, JSON को पार्स करें। सतह बदलती है; तकनीक नहीं।
- शुरू करने के लिए स्वतंत्र। नए Scrapeless खातों में मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम शामिल है - app.scrapeless.com पर साइन अप करें।
परिचय: अपने APIs से इंस्टाग्राम को स्क्रैप करें
इंस्टाग्राम के वेब पृष्ठ रिएक्ट शेल हैं जो आंतरिक JSON एंडपॉइंट्स से हाइड्रेट होते हैं। रेंडर किए गए DOM को स्क्रैप करना कठिन और नाजुक तरीका है - चयनकर्ता बदलते रहते हैं और अधिकांश डेटा तो प्रारंभिक मार्कअप में भी नहीं होता। विश्वसनीय तरीका है कि वही एंडपॉइंट्स कॉल करें जो फ्रंट-एंड कॉल करता है: प्रोफाइल के लिए web_profile_info, पोस्ट और उसकी टिप्पणियों के लिए GraphQL क्वेरी। ये साफ, संरचित JSON लौटाते हैं।
समस्या यह है कि ये एंडपॉइंट्स केवल उस अनुरोध का उत्तर देते हैं जो ऐसा दिखता है जैसे कि यह इंस्टाग्राम वेब ऐप से आया है। इसका मतलब है तीन चीजें: अनुरोध में x-ig-app-id हैडर होता है, इसमें सत्र की कुकीज़ शामिल होती हैं, और यह एक ऐसे IP और ब्राउज़र फिंगरप्रिंट से उत्पन्न होता है जिसे इंस्टाग्राम विश्वसनीय मानता है। कोई एक मिस हो जाए तो आपको खाली body या एक चेकपॉइंट मिलता है।
यह मार्गदर्शिका Scrapeless स्क्रैपिंग ब्राउज़र पर चलती है - एंटी-डिटेक्शन क्रोमियम के साथ आवासीय ईग्रेस - जो Puppeteer के माध्यम से CDP से जुड़ा है। आप instagram.com लोड करते हैं ताकि एक असली सत्र प्राप्त हो, फिर पृष्ठ के अंदर से इसके आंतरिक APIs को कॉल करते हैं। नीचे प्रोफाइल निष्कर्षण लाइव कैप्चर किया गया था। केवल सार्वजनिक डेटा।
आप इसके साथ क्या कर सकते हैं
- एक प्रोफाइल खींचें - अनुयायी, अनुसरण करने वाले, पोस्ट की संख्या, सत्यापन, बायो, बाहरी लिंक।
- एकल पोस्ट को उसके शोर्टकोड द्वारा खींचें जिसमें इसकी मीडिया, कैप्शन, और गिनती शामिल हैं।
- एक पोस्ट की टिप्पणियाँ इकट्ठा करें लेखक, पाठ, और लाइक की गिनती के साथ।
- एक उपयोगकर्ता के पदों का चलना टाइमलाइन एंडपॉइंट को पृष्ठांकित करके।
- स्केल पर प्रोफाइल को समृद्ध करें हैंडल सूची के माध्यम से प्रोफाइल कॉल को लूप करके।
Scrapeless स्क्रैपिंग ब्राउज़र क्यों
Scrapeless स्क्रैपिंग ब्राउज़र एक अनुकूलन योग्य, एंटी-डिटेक्शन क्लाउड ब्राउज़र है जिसे वेब क्रॉलर और एआई एजेंटों के लिए डिज़ाइन किया गया है। विशेष रूप से इंस्टाग्राम के लिए, यह लाता है:
- स्व-निर्मित क्रोमियम - एक असली ब्राउज़र जो सत्र को बूट करता है और उन कुकीज़ को रखता है जो API कॉल को चाहिए।
- एंटी-डिटेक्शन फिंगरप्रिंटिंग - अनुरोध इंस्टाग्राम वेब ऐप के रूप में पढ़ा जाता है, इसलिए आंतरिक एंडपॉइंट्स जवाब देते हैं बजाय कि चेकपॉइंट लौटाने के।
- 195+ देशों में आवासीय प्रॉक्सी - देश के द्वारा ईग्रेस पिन करें; सही क्षेत्र यही है जो साफ प्रतिक्रिया प्राप्त करता है।
- कॉन्फ़िगर करने योग्य सत्र TTL - कई एंडपॉइंट कॉल के दौरान सत्र को जीवित रखें।
- एक मानक Puppeteer कनेक्शन - SDK के साथ एक सत्र बनाएं, फिर CDP पर
puppeteer.connect()करें; बाकी साधारण Puppeteer है।
app.scrapeless.com पर मुफ्त योजना पर अपना API कुंजी प्राप्त करें।
पूर्वापेक्षाएँ
- Node.js 18 या नया
- एक Scrapeless खाता और API कुंजी - app.scrapeless.com पर साइन अप करें
- Puppeteer और JSON के साथ बुनियादी परिचितता
इंस्टॉल करें
bash
npm install @scrapeless-ai/sdk puppeteer-core
bash
export SCRAPELESS_API_KEY="your_api_token_here"
चरण 1 - एक सत्र बनाना और इंस्टाग्राम लोड करना
SDK क्लाउड सत्र बनाता है; Puppeteer CDP के माध्यम से कनेक्ट करता है। पहले instagram.com पर नेविगेट करना वही है जो सत्र को उन कुकीज़ देता है जिसकी आंतरिक API को आवश्यकता होती है:
javascript
import { Scrapeless } from '@scrapeless-ai/sdk';
import puppeteer from 'puppeteer-core';
const client = new Scrapeless({ apiKey: process.env.SCRAPELESS_API_KEY });
const { browserWSEndpoint } = await client.browser.create({
proxyCountry: 'US', // ईग्रेस पिन करें - क्षेत्र API के उत्तर देने को प्रभावित करता है
sessionTTL: 180,
});
const browser = await puppeteer.connect({ browserWSEndpoint });
const page = await browser.newPage();
Here is the Hindi translation of the provided text:
javascript
page.goto('https://www.instagram.com/', {
waitUntil: 'domcontentloaded',
timeout: 60000,
});
यदि कोई कॉल रुक जाए या खाली लौटे, तो किसी अन्य चीज़ को बदलने से पहले proxyCountry बदलें — क्षेत्र सबसे सामान्य कारण है।
चरण 2 — web_profile_info से प्रोफाइल की स्क्रैपिंग करें
सत्र गर्म होने पर, fetch() का उपयोग करके पृष्ठ के भीतर प्रोफाइल एंडपॉइंट लाएं। दो मुख्य विवरण हैं x-ig-app-id हेडर और credentials: 'include' (ताकि पृष्ठ के कुकीज़ साथ आवागमन करें):
javascript
const user = await page.evaluate(async (username) => {
const res = await fetch(
`https://i.instagram.com/api/v1/users/web_profile_info/?username=${username}`,
{
headers: { 'x-ig-app-id': '936619743392459' }, // सार्वजनिक वेब ऐप आईडी
credentials: 'include',
},
);
const data = JSON.parse(await res.text());
return data.data.user;
}, 'nasa');
console.log({
username: user.username,
full_name: user.full_name,
verified: user.is_verified,
followers: user.edge_followed_by.count,
following: user.edge_follow.count,
posts: user.edge_owner_to_timeline_media.count,
});
// {
// username: 'nasa',
// full_name: 'NASA',
// verified: true,
// followers: 104420451,
// following: 91,
// posts: 4817
// }
यह Instagram का पूरा user ऑब्जेक्ट अक्षरशः लौटाता है — उसी संरचना को उसके अपने फ्रंट-एंड से चित्रित किया गया है।
अपने API कुंजी को मुफ्त योजना पर प्राप्त करें: app.scrapeless.com
चरण 3 — GraphQL से पोस्ट और टिप्पणियाँ
व्यक्तिगत पोस्ट और उनकी टिप्पणियाँ Instagram के GraphQL एंडपॉइंट से आती हैं। आकार वही है — fetch() का उपयोग करके पृष्ठ के भीतर — लेकिन यह पोस्ट के शॉर्टकोड के साथ POST है:
javascript
const shortcode = 'C1234567abc'; // instagram.com/p/<shortcode>/ से
const post = await page.evaluate(async (shortcode) => {
const variables = JSON.stringify({ shortcode });
// doc_id उन स्थायी GraphQL क्वेरियों की पहचान करता है जिन्हें वेब ऐप उपयोग करता है
const body = `variables=${encodeURIComponent(variables)}&doc_id=YOUR_DOC_ID`;
const res = await fetch('https://www.instagram.com/graphql/query', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body,
credentials: 'include',
});
return JSON.parse(await res.text());
}, shortcode);
doc_id उस स्थायी-प्रश्न आईडी है जो Instagram का फ्रंट-एंड भेजता है; किसी वास्तविक पोस्ट दृश्य के नेटवर्क पैनल से वर्तमान को कैप्चर करें। उत्तर से आप टिप्पणी, मीडिया यूआरएल और टिप्पणी की धाराओं के लिए मीडिया ऑब्जेक्ट (xdt_shortcode_media) को पढ़ते हैं।
आपको क्या वापस मिलता है
प्रोफाइल कॉल Instagram का user ऑब्जेक्ट लौटाता है। नीचे का आकार एक वास्तविक कैप्चर है; गिनती समय के साथ बदलती है:
json
{
"username": "nasa",
"full_name": "NASA",
"is_verified": true,
"is_private": false,
"biography": "Making the seemingly impossible, possible...",
"external_url": "https://...",
"edge_followed_by": { "count": 104420451 },
"edge_follow": { "count": 91 },
"edge_owner_to_timeline_media": { "count": 4817 }
}
// web_profile_info (@nasa) से वास्तविक कैप्चर। पूरा उपयोगकर्ता ऑब्जेक्ट दर्जनों और फ़ील्ड ले जाता है; जिनकी आवश्यकता है उन्हें पढ़ें।
कुछ ईमानदार अवलोकन:
userऑब्जेक्ट बड़ा है। इसमें व्यवसाय का झंडा, एआई-एजेंट फ़ील्ड, हाइलाइट गिनतियाँ और बहुत कुछ शामिल है — जिनकी आपको आवश्यकता है उन्हें पढ़ें और बाकी को अनदेखा करें।- गिनतियाँ
edge_*.countमें होती हैं। अनुयायी, अनुसरण और पोस्टedge_followed_by,edge_follow, औरedge_owner_to_timeline_mediaके तहत निहित हैं। - निजी खातों में प्रोफाइल शेल वापस आती है लेकिन मीडिया नहीं। पोस्ट की अपेक्षा करने से पहले
is_privateकी जांच करें। - क्षेत्र जितना महत्वपूर्ण है उतना ही हेडर भी।
proxyCountryको पिन करें; एक दुर्भाग्यपूर्ण क्षेत्र आमतौर पर एक खाली बॉडी का सामान्य कारण होता है।
निष्कर्ष: Instagram द्वारा पहले से प्रदर्शित APIs को कॉल करें
Instagram को साफ-सुथरे तरीके से स्क्रैपिंग करना इसके आंतरिक JSON एंडपॉइंट्स को एक वास्तविक, गर्म सत्र के भीतर कॉल करना है — प्रोफाइल के लिए web_profile_info, पोस्ट और टिप्पणियों के लिए GraphQL — x-ig-app-id हेडर और पृष्ठ की अपनी कुकीज़ के साथ। Scrapeless Scraping Browser पर काम करना उन कॉल्स का प्रत्युत्तर देने के लिए है: एंटी-डिटेक्शन क्रोमियम प्लस आवासीय निकास, ताकि Instagram अनुरोध को अपने स्वयं के वेब ऐप के रूप में मानता है। किसी अन्य सोशल सतह पर समान SDK-पर-CDP पैटर्न के लिए, TikTok स्क्रैपर गाइड देखें; Scraping Browser उत्पाद पृष्ठ और दस्तावेज़ पूरे SDK सतह को कवर करते हैं। क्षेत्र को पिन करें, सत्र को गर्म करें, ऐप-आईडी हेडर भेजें, और JSON पढ़ें।
क्या आप अपना AI-संचालित डेटा पाइपलाइन बनाने के लिए तैयार हैं?
हमारे समुदाय में शामिल हों और एक निःशुल्क योजना का दावा करें और उन डेवलपर्स के साथ जुड़ें जो सामाजिक-डेटा पाइपलाइनों का निर्माण कर रहे हैं: Discord · Telegram।
app.scrapeless.com पर निःशुल्क स्क्रैपिंग ब्राउज़र रनटाइम के लिए साइनअप करें और उपरोक्त पैटर्न को उन प्रोफाइल, पोस्ट और हैशटैग के लिए अनुकूलित करें जिनकी आपके कार्यप्रवाह को आवश्यकता है। पैमाने के लिए मूल्य निर्धारण देखें।
प्रश्नोत्तर
प्रश्न: क्या इंस्टाग्राम को स्क्रैप करना कानूनी है?
सार्वजनिक रूप से दृश्यमान डेटा एकत्र करना सामान्यतः अनुमेय है, लेकिन इंस्टाग्राम की सेवा की शर्तें लागू होती हैं और नियम क्षेत्राधिकार के अनुसार भिन्न होते हैं। केवल सार्वजनिक डेटा स्क्रैप करें, सेवा की शर्तों की समीक्षा करें, और अपने उपयोग मामले के लिए सलाहकार से परामर्श करें।
प्रश्न: प्रोफ़ाइल एपीआई खाली बॉडी या चेकपॉइंट क्यों लौटाता है?
आमतौर पर इनमें से तीन में से एक चीज होती है: एक गायब x-ig-app-id हेडर, कोई सत्र कुकीज़ नहीं (आपने पहले instagram.com लोड करना छोड़ दिया), या एक निकासी क्षेत्र जिस पर इंस्टाग्राम भरोसा नहीं करता। हेडर भेजें, credentials: 'include' का उपयोग करें, और proxyCountry को पिन करें।
प्रश्न: क्या मुझे लॉग इन करने की आवश्यकता है?
सार्वजनिक प्रोफाइल और पोस्ट के लिए, वेब-ऐप एंडपॉइंट्स एक गुमनाम-लेकिन-गर्म सत्र का उत्तर देते हैं। लॉग्-इन स्क्रैपिंग एक अलग, उच्च-जोखिम का मार्ग है; यह गाइड सार्वजनिक डेटा पर आधारित है।
प्रश्न: पोस्ट के लिए doc_id कहाँ से आता है?
यह वह संचित-प्रश्न ID है जो इंस्टाग्राम का फ्रंट-एन्ट ग्राफ़क्यूएल को भेजता है। एक वास्तविक पोस्ट दृश्य पर नेटवर्क पैनल से वर्तमान मान पढ़ें - यह समय के साथ बदलता है।
प्रश्न: क्या मुझे प्रॉक्सी की आवश्यकता है?
हाँ। इंस्टाग्राम आईपी प्रतिष्ठा पर भारी वजन डालता है; आंतरिक एंडपॉइंट्स के जवाब देने के लिए proxyCountry के साथ आवासीय निकासी को पिन करें।
प्रश्न: मैं कितनी अनुरोध कर सकता हूँ?
इसे मध्यम रखें - प्रति क्षेत्र कुछ सत्र और कॉल के बीच एक देरी - ताकि आईपी-प्रतिष्ठा संकेत साफ़ रहे।
प्रश्न: क्या मैं इसे बिना किसी एआई एजेंट के चला सकता हूँ?
हाँ। यह Scrapeless SDK और CDP पर साधारण Puppeteer है - कोई एजेंट आवश्यक नहीं है।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



