jsonscraper
Piyasalar
Dergiye dön

IG: профillerdeki sorunları kampanya öncesinde nasıl tespit edebilirsiniz?

API üzerinden durum, gizlilik ve temel profil ölçümlerini kontrol ederek hesap listesinin elle incelenmesini tekrarlanabilir bir rapora dönüştürün

Yayın Politikası Hata bildirin

Kampanya başlamadan önce IG hesaplarının listesini bir betikle işleyebilir ve her kullanıcı adı için API yanıtını içeren bir JSON raporu oluşturabilirsiniz. jsonscraper IG Scraper API uç noktası harici durumu ve profil nesnesini döndürür; gözlemlenen şemada kullanıcı adı, gizlilik ve doğrulama göstergeleri, gönderi sayısı, takipçi ve takip edilen sayıları bulunur. Bu alanlar elle incelenecek kayıtları belirlemeye yardımcı olur; ancak beklenmeyen ya da eksik bir yanıtın nedenini tek başına açıklamaz.

Makale: IG: profillerdeki sorunları kampanya öncesinde nasıl tespit edebilirsiniz?
Özet: Kampanya başlamadan önce IG profillerini otomatik olarak kontrol edin: jsonscraper üzerinden verileri isteyin, yanıtları kaydedin ve elle incelenmesi gereken hesapların listesini oluşturun.
Görsel rolü: kapak — ana fikir
Bölüm: 
Görsel konusu: Kampanya hesabı kontrol listesinin yanında, genel bir IG profil silüeti gösteren telefon, işaretlenmiş doğrulama kutuları ve küçük bir JSON veri kartını içeren editoryal fotoğraf; başka metin yok
Ön kontrol, kullanıcı adları listesini API yanıtı ve doğrulanabilir alanlar içeren kayıtlara dönüştürür.© jsonscraper · yapay zekâyla oluşturuldu

Sorun: Hesap listesi doğru görünüyor; peki çalışmaya hazır mı?

Kampanya çalışma tablosunda adı değişmiş hesaplar, yazım hataları ve gizli profiller bulunabilir. Ekip listeyi ön kontrol yapmadan incelemeye başlarsa hesapları tek tek açmak zorunda kalır. Otomatik tarama elle yapılacak işi azaltır ve API'nin istenen her kullanıcı adı için tam olarak ne döndürdüğüne dair ortak bir kayıt bırakır.

Bu senaryonun amacı sınırlıdır: listeyi taramak, gerçek HTTP yanıtlarını ve JSON'u kaydetmek, kampanya açısından önemli göstergelere sahip profilleri elle incelenecekler olarak ayırmak. Rapor gözlem sırasında alınan verileri kaydeder; bir profilin neden dönmediğini veya isteğin neden hata verdiğini belirlemez.

İstek neleri kontrol eder?

jsonscraper belgelerinde GET \/v1\/user\/by\/username uç noktası belirtilmiştir. Zorunlu parametre username'dir; anahtar license_key olarak iletilir. İsteğe bağlı cache_timeout parametresi, belirtilen saniye sayısı boyunca önbelleğe almayı etkinleştirir; 0 ise önbelleği kapalı tutar. Gözlemlenen başarılı yanıt şeması, harici bir status ve profil alanlarını içeren bir ig nesnesi barındırır.

Tanılama sırasında üç olguyu birbirinden ayırın: HTTP isteği tamamlandı mı; çözümlenen JSON bir ig nesnesi içeriyor mu; bu nesnede hangi alanlar mevcut? Adımlardan biri beklendiği gibi tamamlanmazsa betik teknik sonucu ve ham yanıtı kaydedebilir. Böyle bir sonuç inceleme gerektiğini gösterir, ancak hatanın nedenini belirlemez.

Girdi verilerini ve anahtarı hazırlayın

Her satırda başında @ işareti bulunmayan tek bir kullanıcı adı olacak şekilde usernames.txt dosyasını oluşturun. Boş satırları ve yinelenen adları kaldırın; yalnızca kampanyayla ilgili hesapları bırakın. Sonuçları daha sonra karşılaştırabilmek için kontrol tarihini ve proje kimliğini ayrı olarak saklayın.

Anahtarı kaynak kodda veya depoda değil, JSONSCRAPER_INSTAGRAM_LICENSE_KEY ortam değişkeninde saklayın:

export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="anahtarınız"
python3 check_profiles.py

Örnek, Python 3.8+ standart kütüphanesini kullanır ve HTTP paketi yüklemeyi gerektirmez.

Örnek: Profilleri isteyin ve rapor yazın

Betik listedeki adları tek tek işler. Başarılı bir JSON yanıtı alındığında gerçek yanıt gövdesini ve mevcut profil alanlarını kaydeder; HTTP veya ağ hatalarını teknik sonuç olarak yazar. Eksik alanlar null olarak kalır; okunabilmişse ham yanıt gövdesi de saklanır.

import json
import os
import time
from datetime import datetime, timezone
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen

API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
    raise SystemExit("JSONSCRAPER_INSTAGRAM_LICENSE_KEY değerini ayarlayın")

BASE_URL = "https:\/\/ig.jsonscraper.com\/v1\/user\/by\/username"

with open("usernames.txt", encoding="utf-8") as f:
    usernames = list(dict.fromkeys(
        line.strip().lstrip("@") for line in f if line.strip()
    ))

results = []
for username in usernames:
    params = urlencode({"username": username, "license_key": API_KEY})
    request = Request(f"{BASE_URL}?{params}", method="GET")
    checked_at = datetime.now(timezone.utc).isoformat()

    try:
        with urlopen(request, timeout=30) as response:
            http_status = response.status
            raw_body = response.read().decode("utf-8")
        try:
            payload = json.loads(raw_body)
            json_error = None
        except json.JSONDecodeError as exc:
            payload = None
            json_error = str(exc)

        profile = payload.get("ig") if isinstance(payload, dict) else None
        record = {
            "requested_username": username,
            "checked_at": checked_at,
            "http_status": http_status,
            "api_status": payload.get("status") if isinstance(payload, dict) else None,
            "check_result": "profile_returned" if isinstance(profile, dict) else "unexpected_or_missing_profile_object",
            "response": payload if payload is not None else raw_body,
        }
        if json_error:
            record["json_error"] = json_error
        if isinstance(profile, dict):
            record["returned_username"] = profile.get("username")
            record["is_private"] = profile.get("is_private")
            record["is_verified"] = profile.get("is_verified")
            record["media_count"] = profile.get("media_count")
            record["follower_count"] = profile.get("follower_count")
            record["following_count"] = profile.get("following_count")
        results.append(record)
    except HTTPError as exc:
        body = exc.read().decode("utf-8", errors="replace")
        results.append({
            "requested_username": username,
            "checked_at": checked_at,
            "check_result": "http_error",
            "http_status": exc.code,
            "response": body,
        })
    except (URLError, TimeoutError) as exc:
        results.append({
            "requested_username": username,
            "checked_at": checked_at,
            "check_result": "request_error",
            "detail": str(exc),
        })

    time.sleep(0.5)

with open("profile-check.json", "w", encoding="utf-8") as f:
    json.dump(results, f, ensure_ascii=False, indent=2)

print(f"Kaydedilen sonuç sayısı: {len(results)}")

Bu, entegrasyon örneğidir; gerçekleştirilmiş bir testin bildirimi değildir. Anahtar license_key parametresinde iletilir, ancak ekrana yazdırılmaz. Tam yanıt, ekibinizin veri saklama kurallarına göre erişimi kısıtlanması gereken bilgiler içerebilir.

Sonuç nasıl okunur?

profile_returned kaydı, betiğin bir JSON ig nesnesi aldığı anlamına gelir. requested_username ile returned_username değerlerini karşılaştırın ve kampanya süreci açısından önemli göstergeleri inceleyin. Örneğin kampanya herkese açık profil gerektiriyorsa is_private: true olan bir hesabı elle incelemeye yönlendirebilirsiniz.

Makale: IG: profillerdeki sorunları kampanya öncesinde nasıl tespit edebilirsiniz?
Özet: Kampanya başlamadan önce IG profillerini otomatik olarak kontrol edin: jsonscraper üzerinden verileri isteyin, yanıtları kaydedin ve elle incelenmesi gereken hesapların listesini oluşturun.
Görsel rolü: destekleyici görsel 2 — farklı ve belirli bir yön
Bölüm: Sonuç nasıl okunur?
Görsel konusu: Türkçe infografik: kullanıcı adları listesi → GET IG profil API'si → HTTP ve JSON kontrolü → profil nesnesi ve username alanları
Şema, kullanıcı listesinden rapora giden yolu gösterir ve alınan profil verilerini teknik hatalardan ayırır.© jsonscraper · yapay zekâyla oluşturulmuş çizim

http_error, request_error ve unexpected_or_missing_profile_object sonuçları yalnızca betiğin beklenen yapıyı alamadığı aşamayı belirtir. Hesabın silindiğini, gizli olduğunu veya belirli bir nedenle erişilemediğini kanıtlamazlar. Yanıtı saklayın, kullanıcı adını ve anahtarı kontrol edin, ardından isteği tekrarlayın veya hizmetin olağan destek kanalına başvurun.

Bir alan yoksa bilinmiyor olarak bırakın; yokluğu 0 ya da false şeklinde yorumlamayın. Profil sayaçları, istek anında döndürülen durumu gösterir. Zaman damgası bu anlık görüntüyü sonraki çalıştırmaların sonuçlarından ayırmaya yardımcı olur.

Gözlemlenebilirliği kaybetmeden otomasyon

Çalıştırmayı bir görev zamanlayıcısına veya mevcut ETL sürecinizin bir aşamasına taşıyın. Kontrol tarihini, istenen kullanıcı adını, sonucu, durumu ve yanıt gövdesini saklayın. Ayrı bir adımda JSON'u bir tabloya yükleyebilir ve yalnızca incelenmesi gereken kayıtları uzmana gönderebilirsiniz.

Değişiklikleri tespit etmek için aynı profilin anlık görüntülerini seçtiğiniz alanlara göre karşılaştırın. Gönderi sayısındaki değişiklik, profili açıp kontrol etmek için bir nedendir; bir gönderinin yayımlandığı kesin tarihi göstermez. Takipçi sayısı da istek anındaki değerdir; dolayısıyla gözlem geçmişi kaydedilmiş anlık görüntülerden oluşturulur.

Liste büyükse kontrollü bir istek hızı belirleyin, sınırlandırılmış yeniden denemeler ekleyin ve hata günlüğü tutun. Anahtarı URL günlüklerine dahil etmeyin. Girdi listesini sonuçlardan ayrı saklamak, hangi hesapların işlendiğini belirlemeye yardımcı olur.

Beklenen sonuç

Çıktı, belirtilen her kullanıcı adı için işleme sonucunu, zaman damgasını, mevcut öznitelikleri ve kaydedilmiş yanıtı içeren bir JSON dosyasıdır. Liste kampanyaya aktarılmadan önce eşleşen kullanıcı adlarını, gizli profilleri ve elle incelenmesi gereken teknik durumları filtreleyebilirsiniz. Bir sonraki adımın ölçütlerini ekip belirler.

Uç nokta ve parametreler IG API belgelerinde açıklanmıştır; ürün bilgileri ise IG Scraper API sayfasında yer alır. Küçük bir örneklemle başlayın, yanıtların gerçek biçimini kontrol edin ve raporlama kurallarını kendi sürecinize göre yapılandırın.

İnsanlar

Bu makale için henüz kimse listelenmedi.

Okumaya devam etIG profillerini günlük değişim listesine dönüştürme
Sonraki makaleyi okuyun

Okuduklarınızı çalışan bir entegrasyona dönüştürün

jsonscraper sosyal veri API'lerini keşfedin, istekleri test edin ve sonraki iş akışınızı oluşturun.

API'leri Keşfet