jsonscraper
Markeder
Tilbake til journalen

TikTok: Slik kontrollerer du at søkeovervåkingen fungerer

Kontroller den daglige uthentingen ut fra svarstruktur, aktualitet og gjentatte oppføringer – før en tom rapport når teamet.

Redaksjonelle retningslinjer Meld fra om en feil

HTTP 200 garanterer ikke at den daglige TikTok-overvåkingen har hentet videoer. Søkeresultatene kan ligge i aweme_list eller i search_item_list[].aweme_info; et skript som bare leser den første arrayen, kan fullføres uten feil og likevel skrive en tom rapport. En pålitelig kontroll bekrefter separat transportstatus og applikasjonsstatus, henter ut begge støttede svarstrukturene og registrerer hvor mange unike videoer som ble hentet i denne kjøringen.

Hva det er verdt å diagnostisere

Se for deg denne oppgaven: Hver morgen samler et team inn offentlige videoer for flere søk, slik at de kan oppdage nye innlegg om et produkt. Et viktig resultat av denne prosessen er en reproduserbar liste over funn med beskrivelse, forfatter, publiseringsdato og tilgjengelige måltall. Hvis rapporten plutselig er tom, kan årsaken være JSON-behandling, et endret resultatsett, at allerede kjente videoer dukker opp igjen, eller en faktisk feil i forespørselen. Ett enkelt tall – for eksempel lengden på aweme_list – gjør det ikke mulig å skille mellom disse tilfellene.

For jsonscraper TikTok Scraper API tar søkeruten /searchVideo den obligatoriske parameteren keyword og tilleggsparametrene count, cursor, date_posted, sort_by og region. Dokumentasjonen for ruten beskriver paginering med cursor; verdien skal sendes videre uendret fra det forrige svaret. Parameteren count angir ønsket antall resultater, ikke en garanti for at alle innlegg blir funnet.

Del kontrollen inn i fire signaler

Nyttig diagnostikk består av fire uavhengige kontroller. Den første er at HTTP-forespørselen fullføres. Den andre er at den ytre status-verdien i svaret er ok, og at den indre tiktok.status_code tilsvarer et vellykket svar. Den tredje er at objektet tiktok finnes, og at oppføringer kan hentes fra begge de dokumenterte stedene i svaret. Den fjerde er at det etter deduplisering gjenstår oppføringer med ID-er som kan lagres. Registrer antallet elementer som er hentet ut både før og etter deduplisering: Forskjellen viser om det oppstod gjentakelser under normaliseringen.

Et manglende felt skal stå tomt, ikke erstattes med en oppdiktet verdi. For eksempel kan antall visninger mangle i en bestemt oppføring. Hvis du lagrer den opprinnelige JSON-en sammen med den normaliserte raden, kan du senere kontrollere om informasjon gikk tapt under parsing, eller om den manglet i det opprinnelige svaret.

En enkel forespørsel og normalisering i Python

Spesifikasjonen fra jsonscraper angir basisadressen https://tiktok.evelode.com og at nøkkelen sendes i forespørselsparameteren license_key. Eksemplet nedenfor bruker de dokumenterte parameterne; nøkkelen leses fra en miljøvariabel og skrives ikke til loggen. Installer avhengigheten med kommandoen python -m pip install requests, og angi deretter JSONSCRAPER_TIKTOK_LICENSE_KEY i miljøet.

Artikkel: TikTok: Slik kontrollerer du at søkeovervåkingen fungerer
Sammendrag: For å overvåke TikTok med søkeord er det ikke nok å få HTTP 200: resultatene kan ligge i ulike JSON-arrays. Her viser vi hvordan du kontrollerer API-svaret, lagrer et øyeblikksbilde og lager en rapport om tilstanden til datapipelinen.
Bildets rolle: støttende illustrasjon 2 – et annet, spesifikt aspekt
Del: En enkel forespørsel og normalisering i Python
Visuelt motiv: En tydelig teknisk infografikk på russisk: en overvåkingspipel
Kontroller statusen og de to svarstrukturene før deduplisering og lagring av et øyeblikksbilde.© jsonscraper · AI-generert illustrasjon
Artikkel: TikTok: Slik kontrollerer du at søkeovervåkingen fungerer
Sammendrag: For å overvåke TikTok med søkeord er det ikke nok å få HTTP 200: resultatene kan ligge i ulike JSON-arrays. Her viser vi hvordan du kontrollerer API-svaret, lagrer et øyeblikksbilde og lager en rapport om tilstanden til datapipelinen.
Bildets rolle: forsidebilde – hovedideen
Del: En enkel forespørsel og normalisering i Python
Visuelt motiv: En tydelig teknisk infografikk på russisk: en overvåkingspipeline med bokser «GET /searchVide
Kontroller statusen og de to svarstrukturene før deduplisering og lagring av et øyeblikksbilde.© jsonscraper · laget med KI
import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]


def extract_videos(payload):
    """Samle videoer fra begge de kjente strukturene i søkesvaret."""
    tiktok = payload.get("tiktok") or {}
    videos = []

    for item in tiktok.get("aweme_list") or []:
        if isinstance(item, dict):
            videos.append(item)

    for item in tiktok.get("search_item_list") or []:
        if isinstance(item, dict):
            aweme = item.get("aweme_info")
            if isinstance(aweme, dict):
                videos.append(aweme)

    return videos


def main():
    params = {
        "license_key": KEY,
        "keyword": "eksempel på produktsøk",
        "count": 20,
        "region": "US",
    }
    response = requests.get(BASE_URL, params=params, timeout=30)
    response.raise_for_status()
    payload = response.json()

    if payload.get("status") != "ok":
        raise RuntimeError("API-et returnerte en ytre status som ikke er ok")

    tiktok = payload.get("tiktok")
    if not isinstance(tiktok, dict):
        raise RuntimeError("Objektet tiktok mangler i svaret")

    if tiktok.get("status_code") != 0:
        raise RuntimeError("Den indre status_code er ikke lik den vellykkede verdien 0")

    raw_videos = extract_videos(payload)
    unique = {}
    for video in raw_videos:
        video_id = video.get("aweme_id")
        if video_id:
            unique.setdefault(str(video_id), video)

    snapshot = {
        "collected_at": datetime.now(timezone.utc).isoformat(),
        "keyword": params["keyword"],
        "status": payload.get("status"),
        "status_code": tiktok.get("status_code"),
        "raw_items": len(raw_videos),
        "unique_items": len(unique),
        "has_more": tiktok.get("has_more"),
        "cursor": tiktok.get("cursor"),
        "videos": list(unique.values()),
    }

    Path("snapshots").mkdir(exist_ok=True)
    stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
    Path(f"snapshots/{stamp}.json").write_text(
        json.dumps(snapshot, ensure_ascii=False, indent=2),
        encoding="utf-8",
    )

    print({
        "status": snapshot["status"],
        "status_code": snapshot["status_code"],
        "raw_items": snapshot["raw_items"],
        "unique_items": snapshot["unique_items"],
        "has_more": snapshot["has_more"],
    })


if __name__ == "__main__":
    main()

Skriptet kontrollerer transportnivået med raise_for_status(), og kontrollerer deretter den ytre statusen, at objektet tiktok finnes, og den indre status_code. Deretter henter det oppføringer fra de to søkestrukturene, dedupliserer dem etter aweme_id og lagrer et øyeblikksbilde med innsamlingstidspunktet. Hvis det ikke finnes passende oppføringer, inneholder filen likevel informasjon om kjøringen. Dermed kan du skille mellom et lagret tomt resultat og en manglende rapport.

Slik gjør du øyeblikksbilder om til et signal for teamet

Kjør skriptet etter en tidsplan med cron, CI eller en arbeidsflytplanlegger. Lagre øyeblikksbilder separat for hvert søk, eller ta med søkeordet i filnavnet. I en statustabell er det nok å registrere kjøretidspunkt, status, antall hentede og unike oppføringer samt flagget has_more. Det kan være nyttig å sende et varsel ved unntak i forespørselen, manglende obligatoriske deler av svaret eller en brå endring i antall hentede oppføringer sammenlignet med historikken for det aktuelle søket.

En slik sammenligning avdekker en uregelmessighet i datapipelinen, men forklarer ikke i seg selv årsaken. Et lavere antall resultater kan skyldes innholdet i det aktuelle resultatsettet, ikke en feil i API-et eller parseren. Derfor er det nyttig å lagre den opprinnelige JSON-en, sammenligne identiske parametere og kontrollere ID-ene som ble funnet. Velg en varslingsgrense ut fra observasjoner av nettopp søket ditt, ikke ut fra et universelt tall.

Ved paginering bruker du cursor fra svaret og avslutter gjennomgangen når API-et oppgir at det ikke finnes flere resultater. Lagre brukte markører og forespørselsparametere, slik at kjøringen kan gjentas. Parameterne date_posted og sort_by lar deg angi tidsfilter og sortering; hvis oppgaven krever sammenligninger som kan gjentas, bør du holde dem uendret mellom kjøringene.

Slik leser du resultatet

Etter innføringen har teamet et etterprøvbart svar på tre praktiske spørsmål: Ble forespørselen gjennomført, hvor ligger resultatene i JSON, og hvor mange unike videoer kom med i det lagrede øyeblikksbildet? Dette forkorter veien fra en tom tabell til diagnostikk: Først kontrolleres status og struktur, deretter parametere, gjentakelser og innholdet i det opprinnelige svaret.

Svarskjemaet og tilgjengelige felt kan variere mellom oppføringer. I en live-kontroll med jsonscraper 25. oktober 2026 returnerte søket felter for ID, beskrivelse, forfatter og statistikk; verdiene for den enkelte oppføringen bør regnes som valgfrie. En fungerende rapport lagrer dataene som faktisk ble mottatt, og erstatter ikke manglende verdier med nuller.

Du kan begynne på siden for TikTok Scraper API og kontrollere nøyaktige ruter og parametere i den offisielle API-dokumentasjonen. En slik kontroll er nyttig før overvåkingen settes i drift: Rapporten blir et observerbart resultat som det er mulig å diagnostisere kvaliteten på.

Mennesker

Ingen personer er oppført for denne artikkelen ennå.

Fortsett å leseSlik finner du TikTok-videoer med økende engasjement uten å sammenligne rå visningstall
Les neste artikkel

Gjør det du leser til en fungerende integrasjon

Utforsk jsonscrapers API-er for sosiale data, test forespørsler og bygg neste arbeidsflyt.

Utforsk API-er