انتقل إلى المحتوى

الدليل الكامل لاستخدام الوكلاء مع طلبات بايثون

إذا كنت تكتب أدوات استخراج أو برامج زحف بلغة Python، فيجب أن يكون تكوين دعم الوكيل في أعلى قائمتك. تسمح لك الوكلاء بتوجيه طلباتك عبر خوادم وسيطة، مما يؤدي إلى إخفاء موقعك الحقيقي. وهذا يفتح العديد من الاحتمالات مثل استخراج المواقع على نطاق واسع دون حظرها أو الوصول إلى المحتوى المقيد بمناطق معينة.

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

لماذا يعد الوكلاء ضروريين لمكشطات بايثون؟

دعونا نلقي نظرة أولاً على سبب أهمية الوكلاء بالنسبة إلى كاشطات بايثون:

تجنب الانسداد عند الكشط

السبب الأول لاستخدام الوكلاء مع طلبات Python هو تجنب حظر IP. تتمتع العديد من المواقع بوسائل حماية مطبقة لمنع أدوات الكشط والروبوتات. قد يسمحون بعدد معين من الطلبات في الدقيقة من عنوان IP معين قبل إدراجه في القائمة السوداء.

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

لإعطائك إحساسًا بالحجم، قد يسمح الموقع بـ 60-100 طلب في الدقيقة لكل عنوان IP قبل تفعيل الحظر. مع وجود عدد قليل من الوكلاء، يمكنك بسهولة مضاعفة سعة الكشط الخاصة بك عشرة أضعاف. تتيح الوكلاء إمكانية التوسع.

الوصول إلى المحتوى المقيد جغرافيًا

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

ومن الأمثلة البارزة الأخرى Hulu (الولايات المتحدة فقط)، والقناة 4 (المملكة المتحدة)، وNHK World (اليابان). تمنحك الوكلاء خيارات للوصول إلى المحتوى المقيد بالمنطقة من أي مكان.

إخفاء الهوية والأمن

يؤدي إخفاء عنوان IP الحقيقي الخاص بك أيضًا إلى تحسين الخصوصية أثناء عملية النسخ. لن تتمكن المواقع من تتبع الطلبات بسهولة للوصول إلى موقعك أو هويتك.

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

مقياس كاشطات بايثون

تسمح لك الوكلاء بتقديم طلبات متوازية بشكل ملحوظ نظرًا لأنك لست مقيدًا بسعة عنوان IP سكني واحد.

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

إذا كان كل وكيل يسمح بـ 60 طلبًا/دقيقة، فإن 4 وكلاء سيمنحونك القدرة على 240 طلبًا/دقيقة. يصل حجم 10 وكلاء إلى 600 طلب/دقيقة. الوكلاء ضروريون لبناء كاشطات موزعة ذات حجم كبير في بايثون.

الآن بعد أن عرفت سبب فائدة الوكلاء، دعنا نتعمق في تفاصيل كيفية عملهم...

كيف يعمل الوكلاء: إخفاء هوية طلباتك

يعمل الوكلاء كوسطاء للطلبات بينك وبين الخادم الوجهة:

كيف يعمل الوكلاء

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

يعمل هذا عن طريق تكوين طلبات HTTP الخاصة بك لاستخدام عنوان IP الخاص بالوكيل بدلاً من عنوانك الخاص. سنغطي بالضبط كيفية تكوين هذا في بايثون لاحقًا.

بعض الملاحظات الأساسية حول كيفية عمل الوكلاء:

  • يمتلك الوكيل عنوان IP الفريد الخاص به والذي يبدو أن حركة المرور تأتي منه. يؤدي هذا إلى إخفاء عنوان IP الحقيقي الخاص بك، واستبداله بعنوان الوكيل.

  • يمكن ربط الوكلاء معًا لمزيد من عدم الكشف عن هويتهم. يمكنك توجيه حركة المرور عبر عدة وكلاء لمزيد من التعتيم على الأصول.

  • بروتوكولات الوكيل مثل HTTP و SOCKS التعامل مع حركة المرور من خلال. تم تكوين هذا في طبقة التطبيق للطلبات.

الآن بعد أن فهمت كيفية عمل الوكلاء على المستوى الأساسي، دعنا نتناول الأنواع المختلفة من الوكلاء المتاحة.

HTTP مقابل SOCKS وكلاء

بروتوكولا الوكيل الرئيسيان هما HTTP و SOCKS. دعونا نقارنهم:

بروكسيات HTTP

تعد وكلاء HTTP هي النوع الأكثر شيوعًا الذي ستواجهه. بعض السمات الرئيسية:

  • يعمل فقط مع حركة مرور HTTP/HTTPS (وليس مستوى أقل من TCP/UDP)
  • سهل الإعداد – متوافق مع معظم المكتبات والأدوات
  • يُستخدم عادةً لتجريد الويب والوصول العام إلى الويب

يقوم وكلاء HTTP بشكل أساسي باعتراض طلبات HTTP التي يقدمها العميل وإعادة توجيهها إلى الوجهة. وهي تقتصر على حركة مرور HTTP فقط.

SOCKS وكلاء

SOCKS هو بروتوكول وكيل أكثر اكتمالاً يعمل على طبقات الشبكة السفلية.

بعض الميزات:

  • يعمل مع أي حركة مرور TCP، بما في ذلك HTTP وHTTPS وFTP وما إلى ذلك.
  • تمت إضافة ميزات المصادقة والأمان مثل مصادقة اسم المستخدم/كلمة المرور.
  • يُستخدم عادةً للوصول الكامل إلى الشبكة وإخفاء الهوية.

في حين أن وكلاء HTTP يعملون فقط على مستوى التطبيق، SOCKS يقع في مستوى أدنى في طبقة الشبكة/النقل. هذا يسمح SOCKS لتوكيل إلى حد كبير أي حركة مرور TCP.

أيهما يجب أن تستخدم؟

بالنسبة لمعظم حالات استخدامات تجريف الويب، يعد وكيل HTTP جيدًا. يعد الإعداد أسهل ولا تهتم إلا بتوجيه طلبات HTTP الخاصة بك من خلال الوكلاء.

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

بالنسبة لاستخداماتنا التي تركز على كاشطات الويب Python، فإن بروكسيات HTTP مناسبة تمامًا. الآن دعونا نلقي نظرة على مكان الحصول على الخوادم الوكيلة.

أين يمكن الحصول على وكلاء لتخريب الويب

هناك عدة طرق رئيسية للحصول على الوكلاء لاستخدامها مع طلبات بايثون:

1. قم بشراء الوكلاء من مزود الوكيل

أسهل طريقة هي شراء الوكلاء من خدمة الوكيل. بعض كبار مقدمي الخدمات تشمل:

  • برايت داتا - المزود المفضل لدي عمومًا والذي يتمتع بعناوين IP سكنية عالية الجودة في جميع أنحاء العالم. اتصالات سريعة ووقت تشغيل موثوق.

  • أوكسيلابس - وكلاء مراكز البيانات متاحون لجميع المناطق لدعم كميات كبيرة. أسعار معقولة.

  • جيوسيرف - متخصص في الوكلاء السكنيين لبلدان محددة للوصول إلى المحتوى المقيد جغرافيًا.

توقع أن تدفع حوالي 1 إلى 5 دولارات لكل وكيل شهريًا، اعتمادًا على جودة المزود ومواقعه. تعمل واجهات برمجة التطبيقات لخدمة الوكيل على تسهيل تحميل قوائم الوكلاء الجدد لدمجها في التعليمات البرمجية الخاصة بك.

2. ابحث عن الوكلاء المتاحين للعامة

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

أماكن مفيدة للعثور على الوكلاء العامين:

لا أوصي بالاعتماد فقط على الوكلاء العامين، لكن يمكنهم زيادة الوكلاء المدفوعين في حالة الضرورة. توقع وقت تشغيل/سرعات أقل.

3. قم بنشر الوكلاء الخاصين بك

يمكنك أيضًا إنشاء وكلاء خاصين بك عن طريق نشر خوادم بروكسي على البنية التحتية مثل عناوين IP السكنية أو المثيلات السحابية أو شبكات VPN.

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

باختصار، أوصي بشراء وكلاء من مزود حسن السمعة مثل BrightData ما لم تكن الميزانية محدودة للغاية. تفوق الموثوقية والجودة التعامل مع الوكلاء العامين المخادعين.

بعد ذلك، دعنا نتعمق في الكود لنرى كيفية تكوين طلبات بايثون باستخدام الوكلاء...

إعداد وكيل - تطلب Python أمثلة

تجعل طلبات Python من السهل توجيه حركة المرور الخاصة بك عبر الخوادم الوكيلة.

يمكنك تحديد الوكلاء عن طريق إنشاء ملف proxies dict الذي يعين مخططات URL لعناوين URL الوكيلة:

proxies = {
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘ 
}

ثم قم بتمرير إملاء الوكلاء هذا عند تقديم الطلبات:

response = requests.get(‘https://example.com‘, proxies=proxies)

سيؤدي هذا إلى توجيه جميع طلبات HTTP وHTTPS عبر الوكلاء المحددين.

يمكنك أيضًا تعيين وكلاء عالميًا لجميع الطلبات أو على أساس كل طلب. دعونا نلقي نظرة على أمثلة لتكوينات الوكيل المختلفة مع طلبات بايثون.

الوكيل العالمي لجميع الطلبات

لتطبيق وكيل عالمي على جميع الطلبات المقدمة خلال جلسة الطلبات، قم بتعيين أمر الوكلاء على مستوى الجلسة:

import requests

session = requests.Session() 

proxies = {
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘  
}

session.proxies = proxies

response = session.get(‘https://example.com‘) 
# Uses HTTP proxy http://10.10.1.10:3128

يمكنك أيضًا القيام بذلك عن طريق تعيين متغيرات البيئة HTTP_PROXY و HTTPS_PROXY قبل تشغيل البرنامج النصي الخاص بك.

وكيل لكل طلب

لاستخدام وكيل لطلب محدد فقط، قم بتمرير أمر الوكيل كمعلمة لهذا الاستدعاء فقط:

import requests 

response = requests.get(‘https://example.com‘) # no proxy

proxied_response = requests.get(‘https://example.com‘, proxies={
  ‘http‘: ‘http://10.10.1.10:3128‘,
  ‘https‘: ‘http://10.10.1.10:1080‘ 
}) # uses proxy

يؤدي هذا إلى تجاوز الوكيل العالمي لهذا الطلب فقط.

وكيل لمجال معين

لتوكيل حركة المرور لنطاقات معينة فقط، حدد المجال في الوكلاء الخاصين بك:

proxies = {
   ‘http://scrape-site.com‘: ‘http://10.10.1.10:3128‘,
   ‘https://api.example.com‘: ‘http://10.10.1.10:1080‘, 
}

requests.get(‘http://scrape-site.com/‘, proxies=proxies) # uses proxy
requests.get(‘http://no-proxy-domain.com‘, proxies=proxies) # no proxy

يتيح ذلك التحكم الدقيق في المواقع التي تستخدم الوكلاء مقابل لا.

الآن بعد أن عرفت كيفية تطبيق الوكلاء، دعنا نناقش كيفية المصادقة مع الوكلاء...

المصادقة مع الوكلاء

سيتطلب العديد من الوكلاء المصادقة لاستخدامها. يتضمن ذلك تمرير بيانات اعتماد اسم المستخدم/كلمة المرور في عناوين URL للوكيل الخاص بك.

فيما يلي مثال لعنوان URL لوكيل HTTP مع المصادقة:

http://myusername:[email protected]:8080

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

العديد من الشخصيات الخاصة مثل @ و : غير صالحة في بناء جملة URL الأساسي. للتعامل مع هذه الحالات، نحن بحاجة إلى ترميز URL أوراق الاعتماد مع urllib مكتبة:

from urllib.parse import quote

username = ‘[email protected]‘
password = ‘pass#123‘

proxy_url = f‘http://{quote(username)}:{quote(password)}@123.45.6.7:8080‘

سيؤدي هذا إلى تشفير هذه القيم بشكل صحيح حتى يمكن تمريرها في عنوان URL.

الآن يمكن أن تحتوي بيانات الاعتماد الخاصة بك على أحرف خاصة ويمكنك المصادقة بنجاح.

بعد الانتهاء من ذلك، دعنا ننتقل لمناقشة الوكلاء المتناوبين...

تدوير الوكلاء لتجنب الحظر

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

فيما يلي إحدى الطرق لتنفيذ دوران الوكيل في بايثون:

import requests 
from random import choice

proxy_list = [
  ‘http://123.45.6.7:8080‘,
  ‘http://98.76.54.3.2:8080‘,
  ‘http://103.47.99.2:8080‘  
]

for _ in range(10):

  proxy = choice(proxy_list)

  response = requests.get(‘https://example.com‘, proxies={
      ‘http‘: proxy,
      ‘https‘: proxy
  })

  # Do something with response...

نحن نحتفظ بقائمة عناوين URL للوكيل. قبل كل طلب، نختار عشوائيًا وكيلًا باستخدام لغة Python random.choice(). يؤدي هذا إلى تدوير الوكلاء مع كل طلب.

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

من الأفضل استخدام ما لا يقل عن 10 وكلاء وتغييرهم على الأقل كل 100 طلب لتكون آمنًا. الأكثر الأفضل.

تأكد من تنفيذ دوران وكيل مماثل في كاشطات الإنتاج الخاصة بك للبقاء تحت الرادار.

الأفكار النهائية حول الوكلاء مع طلبات بايثون

والآن أصبح لديك - دليل شامل لاستخدام الوكلاء مع وحدة طلبات بايثون!

لقد تناولنا أهمية الوكلاء في أدوات استخراج الويب الخاصة بـ Python، وكيفية عملهم تحت الغطاء، ومكان الحصول على الوكلاء، وكيفية تكوين الطلبات لاستخدام الوكلاء، والمصادقة، وأنماط تدوير الوكيل.

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

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

الوسوم (تاج):

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *