ما هو Proxy Server
Proxy Server (الخادم الوكيل) هو خادم(server) يعمل كوسيط بين Clinet (مستخدم او عميل) وخادم آخر (مثل خادم الويب-Web server). عندما يقدم العميل طلبًا request ، يتم إرسال الطلب إلى proxy server أولاً ، والذي يقوم بعد ذلك بإرسال الطلب إلى الخادم الفعلي نيابة عن clinet. ثم يتلقى proxy server الاستجابة من الخادم ويعيدها إلى clinet.
هناك عدة أسباب وراء استخدامك proxy server:
- إخفاء الهوية: باستخدام proxy server ، يتم إخفاء عنوان IP الخاص بك عن الخادم الذي تقدم طلبات إليه ، مما يوفر مستوى معينًا من إخفاء الهوية.
- التخزين المؤقت: يمكن proxy server تخزين الموارد المطلوبة بشكل متكرر مؤقتًا وتقديمها للعملاء مباشرةً ، مما يقلل الحمل على الخادم الفعلي ويحسن أوقات الاستجابة clinets.
- التحكم في الوصول: يمكن استخدام proxy server للتحكم في الوصول إلى موارد محددة عن طريق حظر الطلبات أو السماح بها بناءً على عنوان IP أو عنوان URL أو معايير أخرى.
- الأمان: يمكن proxy server أن توفر طبقة إضافية من الأمان عن طريق تصفية الطلبات الواردة وحظر حركة المرور الضارة أو غير المرغوب فيها قبل أن تصل إلى الخادم الفعلي.
- Geolocation: يمكنك تجاوز القيود الجغرافية والوصول إلى المحتوى المقيد في منطقتك.
- أمان الشبكة: في شبكة الشركة ، يمكن proxy server توفير طبقة إضافية من الأمان عن طريق حماية الموارد الداخلية من التهديدات الخارجية.
كيفية استخدام Proxy Server مع مكتبة Requests
يمكنك استخدام خادم وكيل مع مكتبة requests في Python عن طريق تمرير قيم proxies عند ارسال طلب-request.ال parameter الخاص proxy عبارة عن dictionary حيث تكون المفاتيح key هي البروتوكول (مثل "http" أو "https") والقيم value هي عناوين URL لل proxy server (بيتكون من ip و port).
فيما يلي مثال لكيفية استخدام خادم وكيل مع مكتبة الطلبات:
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
response = requests.get("http://www.example.com", proxies=proxies)
في هذا المثال ، يحدد dictionary ال proxies أنه بالنسبة لطلبات "http" ، يجب استخدام proxy server علي http://10.10.1.10:3128 ، وبالنسبة لطلبات "https" ، يجب استخدام proxy server علي 1080:http://10.10.1.10.
حسنا لنقم بعمل سينريوا حقيقي نريد ارسال طلبات الي موقع google ولكن نريد استخدام proxy server
للحصول علي proxy سنستخدم هذا الموقع https://geonode.com/free-proxy-list
import requests
url = 'https://google.com/'
proxies = {"http":"http//80.210.58.174:5678"}
response = requests.get(url,proxies=proxies)
print(response.status_code)
print(response.content)
print(response.cookies)
any more......
Proxy Authentication
إذا كنت بحاجة إلى إضافة مصادقة ، فيمكنك :
response = requests.get(url, auth=('user', 'pass'))
Ref : https://requests.readthedocs.io/en/latest/user/advanced/#proxies