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

لنأخذ مثالًا سؤال «كيفية استخدام آلة قهوة Acme». ينفّذ البرنامج النصي أدناه طلبًا واحدًا للبحث على TikTok، ويستخرج مقاطع الفيديو بعناية من بنيتين موثقتين للاستجابة، ثم يحفظ النتائج التي عثر عليها. بعد ذلك، يراجع الفريق الأوصاف يدويًا، ويدمج الصياغات المتقاربة، ويحوّلها إلى موضوعات للأسئلة الشائعة أو إرشادات لصفحة المنتج.
لماذا يجدر تحويل نتائج البحث إلى جدول
يصعّب تصفح نتائج البحث يدويًا إعادة التحقق منها: إذ يتعين العثور على النتائج مجددًا، وغالبًا ما تبقى الملاحظات في المتصفح أو في المحادثات. ويوفر الجدول المحفوظ قائمة عمل موحدة، تتضمن لكل سجل معرّف الفيديو والرابط والوصف والمؤلف والمؤشرات المتاحة. ويمكن جدولة عمليات التشغيل المتكررة، كما يساعد أرشيف JSON على معرفة ما أعادته واجهة API تحديدًا في عملية تشغيل معينة.
من المهم هنا إدراك حدود الطريقة: يعيد البحث نتائج عثر عليها باستخدام الاستعلام، ولا يضمن تقديم فهرس كامل لكل الإشارات. لذا يصلح الجدول لاكتشاف الأمثلة ومراقبة الأسئلة المتكررة، أما الاستنتاجات المتعلقة بالتكرار فمن الأفضل دعمها بعمليات بحث متكررة ومراجعة يدوية.
ما الذي يعيده البحث
يقبل المسار /searchVideo في توثيق TikTok Scraper API المعامل الإلزامي keyword. وتشمل المعاملات المدعومة أيضًا count وcursor وdate_posted وsort_by وregion. ويكفي لهذا السيناريو تحديد عبارة البحث وعدد النتائج.
تتضمن الاستجابة حالة خارجية وكائنًا باسم tiktok. ووفقًا للمخطط الذي جرى التحقق منه، قد تكون مقاطع الفيديو في aweme_list أو ضمن عناصر search_item_list في الحقل aweme_info. ويتعامل الرمز مع الصيغتين ويستخرج الحقول الموجودة فعليًا فقط. وقد تتوفر، بحسب النتيجة، بيانات معرّف الفيديو ووصفه ورابطه واسم المؤلف ومعرّفه وتاريخ النشر، إلى جانب أعداد المشاهدات والإعجابات والتعليقات والمشاركات.
أداة جمع بسيطة باستخدام Python
ثبّت مكتبة الطلبات، ثم عيّن المفتاح في متغير البيئة JSONSCRAPER_TIKTOK_LICENSE_KEY. يتوافق الرمز مع Python 3.8 أو الإصدارات الأحدث. وهو يحفظ الاستجابة الأصلية في ملف JSON والسجلات الموحدة في ملف CSV. يُرسل المفتاح مع الطلب، لكنه لا يظهر على الشاشة.
import csv
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
KEYWORD = "Acme кофемашина"
response = requests.get(
"https://tiktok.evelode.com/searchVideo",
params={
"license_key": API_KEY,
"keyword": KEYWORD,
"count": 30,
"region": "US",
},
timeout=60,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("TikTok API أعادت حالة خارجية غير متوقعة")
tiktok = payload.get("tiktok") or {}
items = list(tiktok.get("aweme_list") or [])
for result in tiktok.get("search_item_list") or []:
video = result.get("aweme_info")
if video:
items.append(video)
# إزالة التكرارات مع الحفاظ على ترتيب الظهور الأول.
unique = {}
for item in items:
video_id = item.get("aweme_id")
if video_id:
unique.setdefault(video_id, item)
stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("data").mkdir(exist_ok=True)
Path(f"data/raw-{stamp}.json").write_text(
json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8"
)
columns = [
"video_id", "description", "share_url", "author", "author_id",
"created_at", "views", "likes", "comments", "collected_at"
]
with open("data/videos.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=columns)
writer.writeheader()
for item in unique.values():
author = item.get("author") or {}
stats = item.get("statistics") or {}
created = item.get("create_time")
writer.writerow({
"video_id": item.get("aweme_id"),
"description": item.get("desc"),
"share_url": item.get("share_url"),
"author": author.get("nickname"),
"author_id": author.get("uid"),
"created_at": created,
"views": stats.get("play_count"),
"likes": stats.get("digg_count"),
"comments": stats.get("comment_count"),
"collected_at": stamp,
})
print(f"عدد السجلات المحفوظة: {len(unique)}")
يمكن تثبيت التبعية باستخدام الأمر python -m pip install requests. وإذا كان حقل ما غير موجود في سجل محدد، يترك الرمز الخانة المقابلة فارغة. وهذا مهم للمؤشرات: فالقيمة الفارغة تعني أن الحقل لم يصل، ولا تُستبدل بصفر.
كيفية تحويل ملف CSV إلى قائمة مفيدة بالأسئلة
تتمثل الخطوة الأولى في تصفية الأوصاف حسب محتواها. يمكن البحث عن كلمات مثل «كيف» و«لماذا» و«لا يعمل»، أو اسم الطراز، أو أسماء القطع الشائعة. وتُنشئ هذه التصفية قائمة انتظار للمراجعة التحريرية، لكنها لا تحدد بمفردها قصد المؤلف: فقد يكون ذكر العلامة التجارية في مراجعة أو مزحة أو سؤال عن التوافق.
للتجميع حسب الموضوع، لا تمرر إلى المصنّف إلا الحقول النصية الضرورية: الوصف، وإذا كان ذلك مناسبًا للمهمة، معرّفًا منزوع الهوية للسجل. واطلب منه إرجاع فئات محددة، مثل «بدء التشغيل لأول مرة» و«التنظيف» و«التوافق» و«عطل» و«شراء». احتفظ بالوصف الأصلي إلى جانب الفئة، حتى يتمكن الموظف من مراجعة التصنيف وتصحيح الأخطاء.
يمكن أن يتضمن التقرير العملي الموضوع وعدد الأمثلة التي عُثر عليها وروابط لعدة مقاطع توضيحية وعمودًا مستقلًا بعنوان «تم التحقق بشريًا». ويصف عدد الأمثلة في المجموعة النتائج التي أعادها هذا الاستعلام خلال فترة الجمع، ولا يعادل نسبة جميع المشترين الذين يواجهون مشكلة.
تقسيم النتائج إلى صفحات والتشغيل المنتظم
إذا كنت تريد الصفحة التالية من النتائج، يشير التوثيق إلى cursor بوصفه معامل التصفح: مرّر قيمة المؤشر من الاستجابة السابقة إلى الطلب التالي. تعامل معه على أنه رمز غير شفاف، وأوقف الاستعراض عندما لا تعود هناك نتائج في الاستجابة أو عندما تفيد واجهة API بعدم وجود صفحة تالية. ومن المعقول أن تبدأ تجربة محدودة بطلب واحد، وتتحقق من محتويات النتائج، ثم تضيف تقسيم النتائج إلى صفحات.
لجعل الجمع منتظمًا، شغّل البرنامج وفق جدول زمني باستخدام مجدول نظام التشغيل أو CI. احفظ ملف JSON أصليًا منفصلًا لكل عملية تشغيل، وأضف وقت الجمع إلى الجدول. وعند تراكم السجل التاريخي، أزل التكرار باستخدام معرّف الفيديو، لكن احتفظ باللقطات المتكررة منفصلة إذا كانت المهمة تتضمن تتبع تغير المؤشرات. ولا تكون مقارنة المؤشرات مفيدة إلا عند توفر عدة لقطات للسجل نفسه.
احفظ المفتاح في مدير الأسرار ضمن CI أو في متغير بيئة، وقيّد الوصول إلى الأرشيف، وحدد مدة الاحتفاظ داخليًا. وقبل تمرير المواد إلى نظام التصنيف، تحقق من الحقول التي يحتاج إليها فعلًا. يساعد ذلك على تقليل نسخ بيانات المستخدمين بلا داعٍ، وتبسيط التحكم في الوصول.
النتيجة التي يحصل عليها الفريق
بعد التشغيل، سيكون لديك أرشيف للاستجابة الأصلية وملف CSV يتضمن سجلات الفيديو التي عُثر عليها والحقول المتاحة. وسيتمكن فريق الدعم من التحقق من الروابط وجمع الأسئلة المتكررة؛ وسيتمكن فريق التسويق من الاطلاع على الصياغات التي يستخدمها الجمهور لوصف احتياجاته؛ كما سيتمكن المحلل من تكرار الجمع ومقارنة الملاحظات بين تواريخ مختلفة.

ابدأ باستعلام محدد يضم اسم المنتج ومشكلة بعينها، وراجع يدويًا 20 إلى 30 سجلًا من النتائج، ثم حسّن قاموس الفئات. بعد ذلك، يمكنك إضافة عدة استعلامات موضوعية وجدول زمني وتصدير البيانات إلى جدول أو قاعدة بيانات. ترد إمكانات المسار ومعاملاته في وصف TikTok Scraper API؛ تحقّق من الاستعلام الذي اخترته قبل إنشاء نظام مراقبة أوسع.