شعار proxyscrape داكن

كيفية كشط رديت باستخدام بايثون

كيفية القيام بذلك, بايثون, كشط, Mar-06-20245 دقائق للقراءة

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

جدول المحتويات

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

هل استخدمت ريديت؟ إذا كنت باحثًا اجتماعيًا وتقضي الكثير من الوقت على الإنترنت، فمن المحتمل أنك سمعت عن ريديت. يصف ريديت نفسه بأنه "الصفحة الأولى للإنترنت". إنه منتدى نقاش على الإنترنت حيث يشارك الناس المحتوى والأخبار أو يعلقون على منشورات الآخرين. لذا، فهو مصدر رائع للبيانات للمسوقين عبر الإنترنت والباحثين الاجتماعيين. 

يحتوي Reddit على واجهة برمجة تطبيقات تسمى Python Reddit API Wrapper، اختصارًا لـ PRAW، للزحف إلى البيانات. في هذه المدونة، سأعرض لك في هذه المدونة خطوات حول كيفية كشط ريديت باستخدام بايثون. ولكن قبل ذلك، عليك أن تعرف لماذا يجب عليك كشط ريديت.

لماذا تحتاج إلى كشط ريديت؟

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

يمكنك كشط الكثير من نقاط البيانات من Reddit، مثل:

  • الروابط
  • التعليقات
  • الصور
  • قائمة بالمواقع الفرعية
  • التقديمات لكل عنوان فرعي
  • أسماء المستخدمين
  • الأصوات المؤيدة
  • الأصوات الهابطة

يمكنك كشط أي معلومات من Reddit ذات صلة بنشاطك التجاري بسبب الاحتياجات التالية:

  • لبناء تطبيقات البرمجة اللغوية العصبية
  • لتتبع مشاعر العملاء
  • البقاء على اطلاع على اتجاهات السوق
  • لأبحاث المستهلكين
  • لمراقبة تأثير حملاتك التسويقية

على سبيل المثال 

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

تحديات مسح موقع ريديت

تستخدم كاشطات رديت كاشطات الويب (برامج الكمبيوتر) لاستخراج البيانات المتاحة للجمهور من موقع رديت. تحتاج إلى استخدام كاشطات Reddit بسبب القيود التي لا بد أن تواجهها عند استخدام واجهة برمجة تطبيقات Reddit الرسمية. ومع ذلك ، إذا كنت تستخدم مكشطة الويب التي لا تستخدم واجهة برمجة تطبيقات Reddit لاستخراج البيانات من Reddit ، فسوف تنتهك شروط استخدام Reddit. ولكن هذا لا يعني أن كشط الويب غير قانوني.

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

  • تتبع بروتوكول الإنترنت IP
  • كابتشا

يمكنك حل مشكلة تتبع بروتوكول الإنترنت بمساعدة البروكسي وتناوب بروتوكول الإنترنت. من ناحية أخرى، يمكنك حل مشكلة Captcha باستخدام حلول Captcha مثل 2Captcha.

كيفية كشط رديت باستخدام بايثون

هناك خمس طرق لكشط ريديت، وهي:

  • الكشط اليدوي - هي الطريقة الأسهل ولكنها الأقل كفاءة من حيث السرعة والتكلفة. ومع ذلك، فإنها تنتج بيانات ذات اتساق عالٍ.
  • استخدام واجهة برمجة Reddit API - تحتاج إلى مهارات الترميز الأساسية لكشط Reddit باستخدام واجهة برمجة Reddit API. يوفر البيانات ولكنه يحد من عدد المنشورات في أي موضوع على Reddit إلى 1000.
  • واجهات برمجة تطبيقات الطرف الثالث المغطاة بالسكر - إنه نهج فعال وقابل للتطوير، ولكنه ليس فعالاً من حيث التكلفة.
  • أدوات كشط الويب - هذه الأدوات قابلة للتطوير ولا تتطلب سوى معرفة أساسية باستخدام الفأرة.
  • البرامج النصية المخصصة للكشط - وهي قابلة للتخصيص والتوسع بدرجة كبيرة ولكنها تتطلب عيار برمجة عالي.

دعنا نرى كيف يمكننا كشط Reddit باستخدام واجهة برمجة تطبيقات Reddit بمساعدة الخطوات التالية.

إنشاء حساب Reddit API

تحتاج إلى إنشاء حساب Reddit قبل المضي قدمًا. لاستخدام PRAW، يجب عليك التسجيل في واجهة برمجة تطبيقات Reddit باتباع هذا الرابط.

حزم الاستيراد والوحدات النمطية

أولاً، سنقوم باستيراد وحدات Pandas المدمجة في Pandas، أي التاريخ والوقت، ووحدتين من طرف ثالث، PRAW و Pandas، كما هو موضح أدناه:

استيراد praw
استيراد بانداس ك pd
استيراد التاريخ والوقت ك dt

الحصول على مثيلات Reddit و subreddit

يمكنك الوصول إلى بيانات رديت باستخدام Praw، والتي تعني Python Reddit API Wrapper. أولاً، تحتاج إلى الاتصال ب Reddit عن طريق استدعاء دالة praw.Reddit وتخزينها في متغير. بعد ذلك، عليك تمرير الوسيطات التالية إلى الدالة.

ريديت = praw.Reddit(client_id='PERSONAL_SUSE_SCRIPT_14_CHARS'، \
                    client_secret='SECRET_KEY_27_CHARS', \
                    وكيل_المستخدم='اسم_تطبيقك'، \
                    اسم المستخدم='Your_REDDIT_USER_NAME'، \
                    كلمة المرور='YOUR_REDDIT_LOGIN_PASSWORD')

الآن، يمكنك الحصول على subreddit الذي تختاره. لذا، اتصل بمثيل .subreddit من reddit (متغير)، ومرر اسم subreddit الذي تريد الوصول إليه. على سبيل المثال، يمكنك استخدام الرديت الفرعي r/Nootropics.

subreddit = reddit.subreddit('Nootropics')

الوصول إلى الخيوط

يحتوي كل منتدى فرعي على الطرق الخمس المختلفة التالية لتنظيم الموضوعات التي أنشأها مستخدمو ريديت:

  • جديد
  • ساخن
  • مثير للجدل
  • مذهب
  • أعلى

يمكنك الحصول على أكثر الموضوعات التي تم التصويت عليها على النحو التالي:

top_subreddit = subreddit.top()

ستحصل على كائن يشبه القائمة يحتوي على أفضل 100 طلب مرسل في r/Nootropics. ومع ذلك، فإن حد الطلبات في Reddit هو 1000، لذا يمكنك التحكم في حجم العينة عن طريق تمرير حد إلى .top كـ

top_subreddit = subreddit.top(الحد=600)

تحليل البيانات وتنزيلها

يمكنك كشط أي بيانات تريدها. ومع ذلك، سنقوم بكشط المعلومات أدناه حول المواضيع:

  • الهوية
  • العنوان
  • النتيجة
  • تاريخ الإنشاء
  • النص الأساسي

سنقوم بذلك عن طريق تخزين بياناتنا في قاموس ثم استخدام حلقة للتكرار كما هو موضح أدناه.

topics_dict = { "title":[], \
                "score":[], \
                "id":[], "url":[], \
                "created": [], \
                "body":[]}

الآن، يمكننا كشط البيانات من واجهة برمجة تطبيقات Reddit. سنقوم بإلحاق المعلومات بقاموسنا من خلال تكرار كائن top_subreddit الخاص بنا.

للواجبات المرسلة في top_subreddit:
    المواضيع_dict["معرف"].append(submission.id).
    المواضيع_dict["العنوان"].append(submission.title).
    المواضيع_dict["النتيجة"].append.append(submission.score)
    المواضيع_دكت["تم إنشاؤه"].إلحاق(submission.created)
    المواضيع_dict["الجسم"].append.append(submission.selftext)

الآن، نضع بياناتنا في إطارات بيانات Pandas Dataframes حيث أن قواميس Python ليست سهلة القراءة.

موضوعات_بيانات_المواضيع = pd.DataFrame(مواضيع_dict)

تصدير ملف CSV

من السهل جدًا إنشاء ملفات بيانات بتنسيقات مختلفة في Pandas، لذلك نستخدم الأسطر التالية من التعليمات البرمجية لتصدير بياناتنا إلى ملف CSV.

مواضيع_بيانات.to_csv('FILENAME.csv'، فهرس=خطأ)

أفضل وكلاء Reddit لعام 2021

أنت تعلم أن موقع Reddit ليس موقعًا صارمًا عندما يتعلق الأمر بقيود استخدام البروكسي. ولكن يمكن أن يتم القبض عليك ومعاقبتك إذا قمت بأتمتة إجراءاتك على Reddit دون استخدام البروكسي. 

لذا، دعونا نلقي نظرة على بعض أفضل الوكلاء لـ Reddit والتي تنقسم إلى فئتين:

البروكسيات السكنية - هذه هي عناوين IP التي يخصصها مزود خدمة الإنترنت (ISP) لجهاز في موقع فعلي معين. وتكشف هذه البروكسيات عن الموقع الفعلي للجهاز الذي يستخدمه المستخدم لتسجيل الدخول إلى موقع ويب.

وكلاء مركز البيانات - هذه عناوين IP مختلفة لا تنشأ من أي مزود خدمة إنترنت. نحصل عليها من مزود خدمة سحابية.

فيما يلي بعض أفضل البروكسيات السكنية ومراكز البيانات لـ Reddit.

سمارت بروكسي

Smartproxy هو أحد أفضل مزودي البروكسي السكني المتميزين لأنه فعال لأتمتة Reddit. لديه مجموعة واسعة من عناوين IP ويوفر الوصول إلى جميع عناوين IP بمجرد الاشتراك في خدمته. 

ستورم بروكسي

التسعير والنطاق الترددي غير المحدود لـ Stormproxies يجعلها خياراً جيداً. فهي معقولة التكلفة ورخيصة الاستخدام. لديهم بروكسيات لحالات استخدام مختلفة ويوفرون أفضل البروكسيات السكنية لأتمتة Reddit.

ProxyScrape

ProxyScrape هو أحد مزودي خدمات البروكسي المشهورين الذين يركزون على تقديم وكلاء للتجريد. كما أنها توفر وكلاء مراكز بيانات مخصصة إلى جانب وكلاء مراكز البيانات المشتركة. لديها أكثر من 40 ألف وكيل مركز بيانات يمكنك استخدامها لكشط البيانات من مواقع الويب على الإنترنت.

ProxyScrape توفر ثلاثة أنواع من الخدمات لمستخدميها وهي, 

هاي بروكسيز

تعمل البروكسيات العالية مع Reddit ولديها الفئات التالية من البروكسيات:

  • الوكلاء المشتركون
  • الوكلاء الخاصون
  • وكلاء المواقع المبوبة
  • وكلاء التذاكر
  • وكلاء الوسائط

الوكلاء الفوريون

يمكنك أيضًا استخدام Instantproxies لأتمتة Reddit لأنها آمنة جدًا وموثوقة وسريعة ووقت تشغيلها حوالي 99.9 بالمائة. وهي أرخص من جميع وكلاء مراكز البيانات.

لماذا تستخدم وكلاء Reddit Proxies؟

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

حلول بديلة لكشط ريديت

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

لذلك، دعونا نلقي نظرة على بعض أفضل أدوات كشط Reddit كأفضل حل لكشط كميات كبيرة من بيانات Reddit.

سكرابيستروم

Scrapestorm هي واحدة من أفضل أدوات الكشط المتاحة في السوق لأنها تعمل بشكل رائع عندما يتعلق الأمر بكشط Reddit. فهو يستخدم الذكاء الاصطناعي لتحديد نقاط البيانات الرئيسية على صفحة الويب تلقائيًا.

مكشطة ريديت ريديت من أبيفاي

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

الخاتمة

ناقشنا خمس طرق لكشط بيانات ريديت، وأسهلها هو استخدام واجهة برمجة Reddit API لأنها لا تتطلب سوى مهارات الترميز الأساسية. PRAW هو عبارة عن غلاف Python لواجهة برمجة تطبيقات Reddit التي تمكّنك من استخدام واجهة برمجة تطبيقات Reddit بواجهة Python نظيفة. ولكن عندما تكون لديك متطلبات كشط كبيرة من Reddit، يمكنك استخراج البيانات المتاحة للجمهور من موقع Reddit على الويب بمساعدة كاشطات Reddit. لأتمتة الإجراءات الخاصة بك على موقع Reddit، تحتاج إلى استخدام مركز بيانات أو وكلاء مقيمين.