داكن proxyscrape شعار

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

كيف, بايثون, كشط, نوفمبر 02-20225 دقائق للقراءة

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

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

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

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

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

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

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

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

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

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

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

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

تحديات تجريف رديت

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

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

  • تتبع IP
  • كابتشا

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

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

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

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

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

إنشاء حساب واجهة برمجة تطبيقات Reddit

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

استيراد الحزم والوحدات

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

استيراد الزحف
استيراد الباندا ك PD
استيراد التاريخ والوقت ك DT

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

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

رديت = جراو. رديت(client_id='PERSONAL_USE_SCRIPT_14_CHARS', \
                     client_secret='SECRET_KEY_27_CHARS ', \
                     user_agent='YOUR_APP_NAME', \
                     اسم المستخدم = 'YOUR_REDDIT_USER_NAME', \
                     كلمة المرور = 'YOUR_REDDIT_LOGIN_PASSWORD')
الآن ، يمكنك الحصول على subreddit من اختيارك. لذلك ، اتصل بمثيل .subreddit من reddit (متغير) ، وقم بتمرير اسم subreddit الذي تريد الوصول إليه. على سبيل المثال ، يمكنك استخدام r / Nootropics subreddit.
subreddit = reddit.subreddit ('نوتروبيكس')

الوصول إلى المواضيع

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

  • .الجديد
  • .حار
  • .خلافي
  • .مذهب
  • .أعلى

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

top_subreddit = subreddit.top()

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

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

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

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

  • معرف
  • عنوان
  • نقاط
  • تاريخ الإنشاء
  • النص الأساسي

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

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

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

للتقديم في top_subreddit:
    topics_dict["id"].append(submission.id)
    topics_dict["العنوان"].append(submission.title)
    topics_dict["النتيجة"].إلحاق (تقديم.النتيجة)
    topics_dict["تم إنشاؤه"].append(submission.create)
    topics_dict["body"].append(submission.selftext)

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

topics_data = pd. إطار البيانات(topics_dict)

تصدير CSV

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

topics_data.to_csv ('FILENAME.csvindex=False)

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

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

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

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

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

سمارت بروكسي

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

ستورم بروكسي

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

ProxyScrape

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

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

الوكلاء المرتفعون

تعمل Highproxies مع Reddit ولديها الفئات التالية من الوكلاء:
  • الوكلاء المشتركون
  • الوكلاء الخاصون
  • وكلاء المواقع المبوبة
  • وكلاء التذاكر
  • وكلاء وسائل الإعلام

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

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

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

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

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

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

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

سكرابستروم

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

مكشطة رديت من Apify

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

استنتاج

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