في مايو 2026، أغلقت Reddit الوصول غير الموثق إلى نقاط النهاية .json — تلك الحيلة "أضف .json إلى أي عنوان URL"، التي اعتمدت عليها لعقود العديد من السكربتات، لوحات المعلومات، والمشاريع الشخصية. تحقق في 28 يوليو 2026: طلب إلى https://www.reddit.com/r/webscraping/top.json?t=week باستخدام User-Agent عادي للمتصفح يعيد 403 محظور. في الوقت نفسه، يحتوي robots.txt الخاص بـ Reddit على سطرين فقط ذوي مغزى: User-agent: * و Disallow: / — مع الإشارة إلى سياسة المحتوى العام.
هذا يغير ليس "كيف تتجاوز"، بل كيف تبني الآن خط أنابيب لجمع بيانات Reddit. أدناه — مخطط عملي لعام 2026: ما هو متاح فعليًا، ما هي الحدود، أين تحتاج إلى بروكسي، وأين لن تنقذ.
ما الذي تعطل بالضبط: جدول زمني مختصر
- يونيو 2023 — أدخلت Reddit خطة مدفوعة بسعر 0.24 دولار لكل 1000 استدعاء API للتطبيقات ذات الحمل العالي. النتيجة: إغلاق Apollo (قدّر المطور تكلفة الوصول بحوالي 20 مليون دولار سنويًا)، مغادرة معظم العملاء الخارجيين وتوقف Pushshift — الأرشيف العام للمنشورات والتعليقات، الذي اعتمدت عليه نصف الأبحاث الأكاديمية.
- مايو 2026 — تم إلغاء الوصول غير الموثق إلى
.json. الأدوات التي "كانت تسحب URL فقط" توقفت عن العمل؛ بدأ المرور عبر حماية Cloudflare مع التحقق من الجلسة. - أكتوبر 2025 — حتى الآن — دعوى Reddit ضد Perplexity AI، Oxylabs UAB، AWMProxy وSerpApi (المنطقة الجنوبية من نيويورك، القاضي إنجلماير). تتهم Reddit المدعى عليهم باستخراج محتواها بشكل صناعي من خلال نتائج Google وإعادة بيع البيانات، مستندة إلى أحكام مكافحة التجاوز في DMCA. تم تقديم الدعوى المعدلة الأولى؛ اعتبارًا من مارس 2026، القضية في مرحلة motion to dismiss. ينفي المدعى عليهم الانتهاكات: تشير Perplexity إلى أن هذا محاولة لإغلاق البيانات العامة، بينما تدعي SerpApi وOxylabs الوصول إلى الويب العام في إطار القانون.
الاستنتاج العملي من النقطة الثالثة: جمع بيانات Reddit بطرق غير رسمية هو منطقة خطر قانونية، وسعر الخطأ لمشروع تجاري يقاس ليس بالحظر، بل بالدعاوى القضائية. لمزيد من المعلومات حول كيفية تفسير المحاكم في عام 2026 لاستخراج البيانات من النتائج، ناقشنا ذلك في المادة حول قرار قضية Google وSerpApi.
API البيانات الرسمي: الحدود الحقيقية لعام 2026
هذه هي الطريقة الوحيدة التي لا تخلق دعاوى قانونية. الأرقام التي يجب معرفتها قبل التصميم:
- 100 طلب في الدقيقة لعميل OAuth. يتم حساب النافذة على مدى حوالي 10 دقائق، مما يعني أن الارتفاعات القصيرة مقبولة.
- 10 طلبات في الدقيقة بدون OAuth — هذا غير كافٍ لأي شيء سوى التصحيح.
- يتم حساب الحد على مفتاح التطبيق، وليس على المستخدم النهائي. خمسة تدفقات على رمز واحد لا تعطي سعة خمسة أضعاف — بل تحرق ميزانية واحدة بسرعة خمسة أضعاف.
- الخطة المجانية تغطي المشاريع الشخصية، الروبوتات، أدوات المشرفين والأبحاث الأكاديمية. لا يوجد عداد مالي، فقط سقف للتردد.
- الاستخدام التجاري يتطلب عقدًا وموافقة يدوية؛ السعر هو 0.24 دولار لكل 1000 استدعاء. وفقًا لتقديرات المنصات الصناعية، يبدأ الحد الأدنى للدخول في عقد تجاري بحوالي 12,000 دولار سنويًا.
- تدريب نماذج ML على بيانات API محظور تمامًا وفقًا لشروط API البيانات. التراخيص للتدريب هي عقود خاصة منفصلة (قدرت الصفقة بين Reddit وGoogle في الصحافة بحوالي 60 مليون دولار سنويًا).
العناوين التي يجب تحليلها دائمًا
تقدم Reddit ثلاث عناوين لكل رد: X-Ratelimit-Used، X-Ratelimit-Remaining وX-Ratelimit-Reset. هذا هو المصدر الوحيد الموثوق للحقيقة حول ميزانيتك — ليس ثابتًا في الكود ولا ويكي قديمة برقم "60 طلب في الدقيقة" (لقد عفا عليها الزمن منذ عام 2023).
متطلبات User-Agent
تتوقع Reddit سلسلة وصفية فريدة بتنسيق platform:app_id:version (by /u/username). يتم تقليص User-Agent العامة والفارغة بشدة من حيث التردد — هذا هو أول شيء يجب التحقق منه إذا انتهت الحدود قبل المتوقع.
خطوة بخطوة: كيفية بناء خط أنابيب لا يسقط
- قم بتسجيل script-app في إعدادات Reddit واحصل على client_id/client_secret. بالنسبة للحمل القائم على القراءة فقط، هذا هو أبسط نوع من التطبيقات.
- حدد User-Agent الصحيح وفقًا للتنسيق أعلاه. لا تنسخ السلسلة من درس شخص آخر — يجب أن تكون
app_idواسم المستخدم خاصين بك. - اقرأ
X-Ratelimit-Remainingفي كل رد، وليس فقط عند حدوث خطأ. عندما ينخفض الرصيد إلى حوالي 20 طلبًا، انتقل إلى وتيرة متساوية: تأخير الاستدعاء = الثواني حتى إعادة تعيين النافذة ÷ الطلبات المتبقية. بهذه الطريقة، تقوم بتوزيع الحصة عبر النافذة بدلاً من الاصطدام بجدار. - تعامل مع 429 بشكل صحيح. خذ أول فترة توقف من عنوان
Retry-After. بعد ذلك — استخدم التراجع الأسّي مع التذبذب:wait = 2^attempt + random(). التذبذب ضروري: بدونه، يقوم العملاء المتوازيون بإعادة الطلب بشكل متزامن مما يؤدي إلى حدوث سلسلة ثانية من الفشل. - قم بتخزين القراءات مع TTL. الطلب المتكرر لنفس القائمة هو السبب الأكثر شيوعًا لتسرب الحصة في مشاريع المراقبة.
- قم بالتوسع من خلال تدوير الرموز، وليس التدفقات. كل رمز OAuth يحمل عدادًا مستقلًا؛ عدة تطبيقات على حسابات مختلفة مع توزيع round-robin (في Python —
itertools.cycle) تزيد من السعة بشكل خطي. من المهم: بالنسبة للأحمال التجارية، هذا لا يحل محل العقد مع Reddit — هذه طريقة للامتثال للحدود العادلة، وليس لتجاوزها. - قم بتضمين تجاوز حد القائمة. تقدم Reddit حدًا أقصى يبلغ حوالي 1000 عنصر لكل قائمة (100 في الصفحة، المؤشر
after). المحتوى الأقدم غير متاح عبر نقاط النهاية القياسية. الحل القياسي هو عدم "اختراق" الحد، بل تقسيم العينة حسب الوقت وإجراء عدة طلبات ضيقة بدلاً من واحدة واسعة. - لبيانات تاريخية، ابحث عن فهرس، وليس API. بعد إغلاق Pushshift، تحتل فهارس خارجية مثل PullPush (مجانية، ولكن بدون SLA) وAPIs بحث تجارية بفهرسها الخاص وقيود أخرى مكانه. للعمل الأكاديمي، لدى Reddit برنامج منفصل يسمى Reddit for Researchers.
المزالق التي ستكتشفها لاحقًا
PRAW يبطئ التدفق، لكنه لا ينقذك من كل شيء. يقوم محدد PRAW المدمج بقراءة العناوين ويضع فترات توقف بنفسه — هذا يعمل بشكل ممتاز لسكربت أحادي التدفق. يمكن رؤية الحالة الحالية من خلال reddit.auth.limits. يتعطل هذا في حالتين: عند استخدام تعدد الخيوط مع بيانات اعتماد مشتركة (لا ترى النسخ الاستهلاك لبعضها البعض) وفي كود async، حيث يؤدي time.sleep المحظور إلى تعليق حلقة الأحداث.
الوكلاء الذكاء الاصطناعي يحرقون الحصة دون أن تلاحظ. خطوة واحدة من استدلال الوكيل يمكن أن تتحول بسهولة إلى 10-15 استدعاء للأدوات. عشر جلسات متوازية تعني 100-150 طلبًا متزامنًا، أي أن الميزانية الدقيقة تُنفد في ثوانٍ. إذا كنت تبني وكيلًا فوق Reddit، فإن المحدد مطلوب على مستوى المجموعة، وليس على مستوى الاستدعاء الفردي.
الاستطلاع بدون تراجع. التحقق من التحديثات "كل N ثانية" بدون فترة توقف أسية هو السبب الثاني الأكثر شيوعًا لـ 429 بعد الرمز العام.
أين تحتاج حقًا إلى البروكسي، وأين لا
دعنا نكون صادقين: البروكسي لا تزيد من حد API الرسمي الخاص بك. الحصة مرتبطة بمفتاح التطبيق، وليس بعنوان IP الصادر، ومحاولة "استنساخها" عن طريق تغيير العنوان لا تعمل وتتعارض مع الشروط. المهام التي تحلها البروكسي فعليًا في خط أنابيب Reddit هي أخرى:
- الوصول الجغرافي والاتصال. Reddit غير متاح أو محدود جزئيًا في عدد من البلدان، وتقطع الشبكات المؤسسية الوصول إليه كوسيلة تواصل اجتماعي. نقطة الخروج المستقرة في المنطقة المطلوبة هي مسألة توفر البنية التحتية، وليست تجاوز الحدود. بالنسبة للمهام الخدمية مع IP ثابت، عادة ما يكفي بروكسي مركز البيانات.
- الإصدار الإقليمي. بعض المحتوى والتوصيات من Reddit تُعطى مع مراعاة جغرافيا الطلب؛ إذا كنت تحلل ما تراه جمهور بلد معين، تحتاج إلى الخروج من هناك.
- توزيع البنية التحتية. عندما تعيش عدة خدمات مستقلة (جمع، مراقبة الإشارات، التحليل) على خادم واحد، يصبح عنوان IP الوحيد نقطة فشل مشتركة لجميع التكاملات في آن واحد.
- العمل مع حساباتك الخاصة. للإشراف، إدارة المجتمعات، والنشاطات التسويقية الشرعية من عدة ملفات شخصية، فإن الربط بين "حساب ↔ IP ثابت" هو النظافة الأساسية. هنا، تكون البروكسي السكنية مع جلسة ثابتة مناسبة.
لكن ما لن تفعله البروكسي: لن تجعل جمع البيانات التجارية بطريقة غير قانونية قانونيًا، لن تزيل حد القائمة البالغ 1000 عنصر، ولن تلغي Disallow: / في robots.txt. النهج العام للعمل مع حدود المنصات هو في التحليل حول تحديد معدل API ودور البروكسي.
الاستنتاج
في عام 2026، توقفت Reddit تمامًا عن كونها "مجموعة بيانات مفتوحة يمكن أخذها عبر .json". يبدو المخطط العملي كالتالي: وصول OAuth الرسمي + محدد عادل على العناوين + تدوير الرموز ضمن القواعد + فهرس خارجي للتاريخ. البروكسي في هذا المخطط مسؤولة عن التوفر والجغرافيا، وليس عن تجاوز الحصص — وهذه هي الدور الوحيد الذي يقدمون فيه نتيجة متوقعة.
إذا كان مشروعك تجاريًا، خطط لميزانية العقد مع Reddit مسبقًا: تظهر التاريخ القضائي مع Perplexity وOxylabs وSerpApi أن المنصة مستعدة لإنفاق أموال أكثر بكثير على حماية بياناتها مما يكلف الوصول القانوني.
