jsonscraper
الأسواق
العودة إلى المجلة

طابِق ملف IG مع موجز الحملة وفق حقول قابلة للتحقق

حوّل قائمة الحسابات إلى عملية تحقق قابلة لإعادة الإنتاج باستخدام IG Scraper API وPython

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

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

مقال: طابِق ملف IG مع موجز الحملة وفق حقول قابلة للتحقق
الملخص: تحقّق من ملفات IG العامة قبل إطلاق الحملة: استرجع البيانات حسب اسم المستخدم، وقارنها بالموجز، وأنشئ تقريرًا بالاختلافات من دون استبدال البيانات المفقودة بأصفار.
دور الصورة: غلاف — الفكرة المحورية
القسم: 
الموضوع البصري: صورة تحريرية لموجز حملة مؤثرين مطبوع وتقرير تحقق CSV صغير على مكتب، مع تمثيل بيانات الملف ببطاقات بسيطة ومحايدة للاستخدام
تقارن عملية التحقق متطلبات الموجز بحقوق محددة من الملف العام.© jsonscraper · أُنشئت بالذكاء الاصطناعي

المشكلة: يتقادم الموجز أسرع من الجدول

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

الحل المفيد هو تحديد قواعد صريحة لكل صف، واسترجاع الحقول العامة المتاحة وقت التحقق، وتسجيل القيم الأصلية والفعلية جنبًا إلى جنب. عندئذٍ لا تعني «مطابق» سوى أن حقلًا بعينه يفي بقاعدة محددة؛ أما الحكم على ملاءمة الجمهور أو جودة المحتوى فيظل من اختصاص المتخصص.

البيانات المطلوب طلبها

يوضح دليل مسارات IG API مسار GET /v1/user/by/username ومعامل username الإلزامي. وفي الاستجابة التي تم التحقق منها، توجد بيانات الملف في الكائن ig، وتتضمن اسم المستخدم والاسم الكامل والنبذة ومؤشري الخصوصية والتحقق، وعدد المنشورات والمتابعين والحسابات التي يتابعها المستخدم. وتصف هذه الحقول لقطة الملف المتاحة.

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

كيفية دمج الطلب في Python

أولًا، خزّن مفتاح الترخيص في متغير البيئة JSONSCRAPER_INSTAGRAM_LICENSE_KEY. يستخدم المثال عنوان الأساس والمسار والمعامل username واسم المفتاح license_key التي جرى التحقق منها. يحتوي ملف CSV على الحقول username,min_followers,max_followers,require_public؛ ويقارن البرنامج النصي لكل حساب بالقواعد، ثم يعلّم الصفوف التي تستلزم المراجعة.

import csv
import os
import sys
import requests

BASE_URL = "https://ig.jsonscraper.com"
API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
    raise SystemExit("Set JSONSCRAPER_INSTAGRAM_LICENSE_KEY")

# brief.csv: username,min_followers,max_followers,require_public
with open("brief.csv", newline="", encoding="utf-8") as source:
    brief = list(csv.DictReader(source))

results = []
for row in brief:
    username = row.get("username", "").strip()
    minimum_text = row.get("min_followers", "").strip()
    if not username or not minimum_text:
        results.append({
            "requested_username": username,
            "needs_review": True,
            "error": "Missing username or min_followers",
        })
        continue

    try:
        response = requests.get(
            f"{BASE_URL}/v1/user/by/username",
            params={"username": username, "license_key": API_KEY},
            timeout=30,
        )
        response.raise_for_status()
        payload = response.json()
        if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
            raise ValueError("Unexpected API response")
        profile = payload["ig"]

        followers = profile.get("follower_count")
        minimum = int(minimum_text)
        maximum_text = row.get("max_followers", "").strip()
        maximum = int(maximum_text) if maximum_text else None
        public_required = row.get("require_public", "").strip().lower() == "true"

        checks = {
            "username_matches": (
                isinstance(profile.get("username"), str)
                and profile["username"].lower() == username.lstrip("@").lower()
            ),
            "followers_in_range": (
                isinstance(followers, int)
                and followers >= minimum
                and (maximum is None or followers 

للتشغيل: python check_profiles.py. ثبّت مكتبة requests، واضبط متغير البيئة في بيئة التشغيل، وضع ملف brief.csv بجواره. لا تكتب المفتاح في الشيفرة المصدرية أو ملف CSV النهائي. يعالج البرنامج النصي القائمة بالتتابع، وهو ما يسهّل فحص مجموعات الحسابات الصغيرة وتصحيحها.

لماذا ينبغي إبقاء البيانات المفقودة ظاهرة

من المهم في قواعد التحقق التمييز بين القيمة الصفرية والحقل غير الموجود. في المثال، لا يُعدّ عدد المتابعين مستوفيًا للشرط إلا إذا وُجد حقل رقمي؛ وإذا غاب العداد، فلا يكون الشرط مؤكدًا وتُحال السجلات إلى المراجعة اليدوية. كذلك، يُعلَّم حد min_followers الفارغ بوصفه خطأ في بيانات الإدخال، ولا يتحول تلقائيًا إلى صفر.

ينبغي الاحتفاظ بفحص الاستجابة ضمن سير العمل. يتحقق البرنامج النصي أولًا من أن الحالة الخارجية تساوي ok، ثم يتأكد من وجود الكائن ig. وتُسجَّل أخطاء HTTP أو JSON غير المتوقعة أو القواعد غير الصحيحة في التقرير من دون نص الاستثناء الذي قد يكشف المفتاح في عنوان URL. وهكذا يستطيع المشغّل التمييز بين تعطل الطلب وعدم تطابق الملف، من دون إفشاء السر.

كيفية قراءة النتيجة وأتمتة التحقق

يحتوي الملف profile_check.csv على اسم المستخدم الأصلي، والاسم الذي أعادته الاستجابة، والحقول العامة المتاحة، ونتائج الشروط الفردية، والعلامة العامة needs_review. ويمكن للفريق تصفية الصفوف بحسب هذه العلامة، كما يمكن للمطوّر حفظ التقرير في مخزن أو تمريره إلى خطوة لاحقة من عملية ETL. ولجدولة التشغيل، استخدم أداة جدولة المهام واحفظ تاريخ التشغيل منفصلًا لمقارنة لقطات الحملات.

مقال: طابِق ملف IG مع موجز الحملة وفق حقول قابلة للتحقق
الملخص: تحقّق من ملفات IG العامة قبل إطلاق الحملة: استرجع البيانات حسب اسم المستخدم، وقارنها بالموجز، وأنشئ تقريرًا بالاختلافات من دون استبدال البيانات المفقودة بأصفار.
دور الصورة: رسم توضيحي داعم 2 — جانب محدد مختلف
القسم: كيفية قراءة النتيجة وأتمتة التحقق
الموضوع البصري: رسم معلوماتي تخطيطي باللغة الروسية يوضح سير العمل: صفوف موجز CSV ← GET /v1/use
يوضح المخطط المسار من صف الموجز إلى التقرير، بما في ذلك المراجعة اليدوية للبيانات المفقودة.© jsonscraper · رسم توضيحي مُنشأ بالذكاء الاصطناعي

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

تتضمن صفحة IG Scraper API عنوان الأساس ومثالًا على الطلب ورابطًا إلى Postman. ولا يستخدم السيناريو أعلاه سوى طلب البحث عن ملف شخصي باستخدام اسم المستخدم، ولا يفترض أن هذا الطلب يعيد المنشورات.

النتيجة العملية هي فحص أولي قابل لإعادة الإنتاج: فبدلًا من مراجعة القائمة كلها يدويًا، يحصل الفريق على قائمة بالتطابقات والاستثناءات المرتبطة بحقوق محددة في الموجز. وهذا يسرّع التحقق قبل الإطلاق، مع إبقاء قرار ملاءمة الحملة لدى المختص المسؤول.

الناس

لم يتم إدراج أي أشخاص لهذه المقالة حتى الآن.

استمر في القراءةطابق ملف IG مع موجز الحملة قبل إطلاقها: التحقق عبر API
إقرأ المقال التالي

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

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

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