jsonscraper

كيفية قياس ديناميكيات محتوى المنافسين على IG: مسار API باستخدام Python

اجمع المنشورات العامة وفق جدول زمني، واحسب المقاييس استنادًا إلى بياناتك، وأرسل إلى الفريق ملخصًا قابلًا للتحقق.

السياسة التحريرية الإبلاغ عن خطأ

قد يتمكن فريق التسويق من رؤية منشورات المنافسين في الخلاصة، لكن التصفح اليدوي لا يجيب جيدًا عن سؤال محدد: ما التنسيقات والموضوعات التي تحصد التفاعلات باستمرار، وما الذي لم يلفت الانتباه إلا مرة واحدة؟ الحل هو حفظ بيانات المنشورات العامة يوميًا ومقارنتها بمرور الوقت، بحسب التنسيق والعدادات المتاحة.

مقال: كيفية قياس ديناميكيات محتوى المنافسين على IG: مسار API باستخدام Python
الملخص: مخطط عملي لمتابعة منشورات IG العامة: طلب إلى IG Scraper API، وتطبيع JSON، وحفظ لقطات يومية، وحساب الديناميكيات دون الخلط بين التفاعلات المتراكمة والجديدة.
دور الصورة: غلاف — الفكرة المحورية
القسم: 
الموضوع المرئي: لوحة تحليلات رقمية تعرض خطًا زمنيًا لبطاقات محتوى عامة على نمط IG، وعدادات التفاعل، ولقطات بيانات يومية، مكتملة
© jsonscraper · رسم توضيحي مولّد بالذكاء الاصطناعي

فيما يلي مسار أساسي باستخدام Python وIG Scraper API. يسترجع منشورات حساب محدد، ويحفظ الاستجابات بصيغة JSONL، وينشئ ملخصًا للمواد الجديدة. تعكس مقاييس التفاعل في هذا التقرير القيم التي أعادتها واجهة API وقت الجمع؛ وتتيح اللقطات المأخوذة في تواريخ مختلفة تحليل تغيرها على نحو منفصل.

حدد أولًا ما تريد مقارنته

تكفي لمجموعة صغيرة من المنافسين قائمة بالحسابات العامة وجمع منشوراتها وفق جدول زمني واحد. ابدأ بأسئلة يمكن للبيانات الإجابة عنها: كم مرة يُنشر المحتوى، وما المنشورات التي تندرج ضمن Reels أو تنسيقات أخرى، وما الموضوعات التي تتكرر، وكيف تتغير عدادات الإعجابات والتعليقات المتاحة.

ميّز في مخزن البيانات بين مفهومين: المنشور ولقطته. استخدم معرّفًا ثابتًا لتعريف المنشور إن كان موجودًا في الاستجابة؛ واحفظ كل تشغيل جديد كسجل مستقل مع وقت الجمع. وهكذا يمكنك معرفة كيفية تغير العدادات المتاحة بدلًا من استبدال قيمة الأمس بقيمة اليوم.

استخدم المسار الموثق

تحدد وثائق jsonscraper العنوان https://ig.jsonscraper.com والمسار GET /v1/user/by/username للطلب الأساسي. كما تسرد خريطة API المسار GET /v1/user/medias/chunk لاسترجاع المنشورات. تحقّق من مجموعة المعلمات الدقيقة وحقول الاستجابة في مجموعة Postman المرتبطة بالمنتج: لا تربط المعالج ببنية مفترضة قبل فحص الاستجابة الفعلية لطلبك.

لإجراء تحقق أولي، استخدم مثال طلب الملف الشخصي الموثق؛ ومرّر المفتاح عبر متغير بيئة بدلًا من كتابته في الشيفرة المصدرية:

curl -G "https://ig.jsonscraper.com/v1/user/by/username" \
  --data-urlencode "username=apple" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "cache_timeout=60"

يعرض المثال في صفحة المنتج المعلمات username وlicense_key وcache_timeout لمسار الملف الشخصي. لا تستخدم المعلمة في مسارات أخرى إلا إذا وردت فيها ضمن الوثائق. ولطلب المنشورات، استخرج أسماء المعلمات الحالية من مواصفات ذلك المسار.

احفظ الاستجابات كلقطات مؤرخة

البرنامج النصي التالي نقطة انطلاق لتشغيل فعلي: تُرك عنوان URL ومعلمات مسار المنشورات ضمن الإعدادات كي تُملأ وفقًا لوثائق Postman فقط. يحفظ المعالج JSON الأصلي ووقت الجمع؛ وأضف تطبيع الحقول بعد التحقق من الاستجابة الفعلية.

import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://ig.jsonscraper.com"
USERNAME = os.environ["IG_USERNAME"]
LICENSE_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
OUTPUT = Path("instagram_snapshots.jsonl")

# املأ نقطة النهاية والمعلمات وفق وثائق المسار
# GET /v1/user/medias/chunk في مجموعة Postman.
MEDIA_PATH = os.environ["IG_MEDIA_PATH"]
MEDIA_PARAMS = json.loads(os.environ["IG_MEDIA_PARAMS_JSON"])

params = {
    **MEDIA_PARAMS,
    "username": USERNAME,
    "license_key": LICENSE_KEY,
}

response = requests.get(
    f"{BASE_URL}{MEDIA_PATH}", params=params, timeout=30
)
response.raise_for_status()
payload = response.json()

record = {
    "collected_at": datetime.now(timezone.utc).isoformat(),
    "username": USERNAME,
    "response": payload,
}
with OUTPUT.open("a", encoding="utf-8") as file:
    file.write(json.dumps(record, ensure_ascii=False) + "\n")

لا يتضمن المثال عمدًا معلمات ترقيم صفحات أو أسماء حقول مختلقة؛ بل ينبغي نسخها من المواصفات المحددة والتحقق منها باستخدام استجابة API. تساعد الطلبات المزوّدة بمهلة انتظار وraise_for_status() على اكتشاف أخطاء الشبكة قبل تسجيل النتيجة كبيانات عادية. وللتشغيل الآلي، أضف التحقق من JSON وسجلًا للأخطاء.

أضف جدولًا زمنيًا ومقاييس

شغّل عملية الجمع مرة يوميًا باستخدام cron أو أداة الجدولة في نظام الأتمتة لديك. ولعدة حسابات، مرّ على قائمة الإعدادات واحفظ لقطة منفصلة لكل حساب، مع إتاحة إعادة التشغيل بعد خطأ مؤقت. خزّن المفتاح في متغير بيئة أو في مخزن للأسرار؛ كما توصي صفحة API على نحو منفصل بعدم تضمينه في شيفرة العميل.

بعد التحقق من الاستجابة، طبّع السجلات في جدول يتضمن حقولًا مثل username وmedia_id وcollected_at ونوع المحتوى والعدادات المتاحة. لا تحذف JSON الأصلي؛ فقد تحتاج إليه إذا تغير تنسيق الاستجابة أو أردت التحقق من عملية الحساب.

في طبقة التحليلات، احسب عدد المنشورات الجديدة خلال فترة، ووسيط التفاعلات المتاحة لكل تنسيق، والتغير في عداد المنشور نفسه بين اللقطات. يقلل الوسيط من أثر منشور فيروسي منفرد على الملخص. قارن الحسابات ضمن نوافذ زمنية متماثلة، واعرض حجم العينة إلى جانب القيمة المجمعة.

النتيجة المتوقعة

سيحصل الفريق على جدول منشورات قابل لإعادة الإنتاج وملخص يومي يشمل وتيرة نشر المحتوى وتوزيعه بحسب التنسيق وديناميكيات التفاعلات المتاحة. وتساعد هذه المعلومات على صياغة فرضيات لجدول النشر التحريري الخاص بالفريق، بدلًا من الاكتفاء بجمع لقطات شاشة من الخلاصة.

الخطوة التالية هي إرسال السجلات المطبّعة إلى Google Sheets أو قاعدة بيانات أو نظام تصوّر بيانات، وإنشاء الملخص النصي في مرحلة منفصلة. وإذا استخدمت الذكاء الاصطناعي، فزوّده ببيانات مجمعة واطلب منه وصف الأنماط الملحوظة مع ذكر الفترة وعدد المنشورات؛ واترك قرار الاستراتيجية للمحرر.

ابدأ بحساب واحد ومسار واحد: تحقّق من المعلمات وبنية الاستجابة في وصف IG Scraper API، ثم ثبّت هذا الإعداد في الجدول الزمني. يحوّل هذا النهج متابعة المنافسين من تصفح يدوي عابر إلى مسار عمل واضح يحتفظ بسجل قابل للمراجعة.

People

No people listed for this article yet.

Keep readingكيفية جمع بيانات IG باستخدام Python
Read the next article

حوّل ما تقرأه إلى تكامل عملي

استكشف واجهات API للبيانات الاجتماعية من jsonscraper واختبر الطلبات وأنشئ سير عملك التالي.

استكشف واجهات API