In this Article
تُعد aiohttp مكتبة Python المفضلة للاتصالات غير المتزامنة عبر HTTP ذات التزامن العالي، وهي مثالية لتجريف آلاف الصفحات دفعة واحدة دون سلاسل تنفيذ. لكن إرسال هذا العدد من الطلبات من IP واحد لمركز بيانات سيؤدي سريعاً إلى حظرك أو تقييد معدل طلباتك. والحل هو تمرير aiohttp عبر بروكسيات، ويفضل أن تكون سكنية، كي تبدو الطلبات كأنها صادرة من مستخدمين حقيقيين. تتضمن aiohttp وسيطة proxy= مدمجة لبروكسيات HTTP، مع تنبيه مهم يتعلق بـ SOCKS5. يوضح هذا الدليل بالتفصيل كيفية استخدام بروكسي مع aiohttp، بما في ذلك HTTP والمصادقة وSOCKS5 والجلسات ومتغيرات البيئة والتدوير، ثم يرتب أفضل 8 بروكسيات لـ aiohttp في 2026. يشكل DataImpulse بسعر $1/GB معيار القيمة.
أنا Andrii Byzov، مدير تسويق جزئي يعمل بالذكاء الاصطناعي، وأكتب أدوات تجريف Python غير المتزامنة يومياً. ستجد أدناه مقتطفات جاهزة للنسخ واللصق، وملاحظة التثبيت الخاصة بـ SOCKS5، والمزودين الذين يستحقون ميزانيتك.
حقائق أساسية
- مرر
proxy=إلى الطلب، مثلsession.get(url, proxy="http://user:pass@host:port"). تُستخدم بيانات الاعتماد الموجودة في URL تلقائياً. - أو استخدم
proxy_auth، أيaiohttp.BasicAuth("user","pass")إلى جانب URL بروكسي نظيف. - تدعم aiohttp بروكسيات HTTP فقط بشكل أصلي، وليس SOCKS5. لاستخدام SOCKS5، ثبت
aiohttp_socksواستخدمProxyConnector. - اضبط البروكسي على
ClientSessionبتمريرtrust_env=Trueلقراءة متغيرات البيئةHTTP_PROXY/HTTPS_PROXY، أو مررproxy=لكل طلب. - DataImpulse هو خيار القيمة، بروكسي سكني بالدفع حسب الاستخدام بسعر $1/GB، ومركز بيانات بسعر $0.50/GB، ومحمول بسعر $2/GB، وأكثر من 90M عنوان IP عبر 195 دولة، وHTTP/HTTPS/SOCKS5، مع استهداف حسب الدولة/المدينة/ASN.
كيفية استخدام بروكسي مع aiohttp
1. بروكسي HTTP أساسي مع المصادقة
import aiohttp, asyncio
async def main():
proxy = "http://YOUR_LOGIN__cr.us:[email protected]:823" # __cr.us = US
async with aiohttp.ClientSession() as session:
async with session.get("https://httpbin.org/ip", proxy=proxy) as r:
print(await r.json()) # confirm the egress IP
asyncio.run(main())
تقبل وسيطة proxy= URL لبروكسي HTTP، وتُطبَّق بيانات الاعتماد الموجودة في URL تلقائياً. يكون مخطط proxy في aiohttp هو http:// حتى عند طلب URL بـ https://، إذ ينشئ نفقاً عبر CONNECT.
2. بيانات الاعتماد عبر proxy_auth
auth = aiohttp.BasicAuth("YOUR_LOGIN__cr.us", "YOUR_PASSWORD")
async with session.get("https://httpbin.org/ip",
proxy="http://gw.dataimpulse.com:823",
proxy_auth=auth) as r:
print(await r.json())
3. SOCKS5، ثبت aiohttp_socks
# pip install aiohttp_socks
from aiohttp_socks import ProxyConnector
connector = ProxyConnector.from_url(
"socks5://YOUR_LOGIN__cr.us:[email protected]:824")
async with aiohttp.ClientSession(connector=connector) as session:
async with session.get("https://httpbin.org/ip") as r:
print(await r.json())
لا تتعامل aiohttp مع SOCKS بشكل أصلي، لذا يوفر aiohttp_socks موصل ProxyConnector لذلك، ويحل DNS عبر البروكسي لتجنب التسريبات. يتيح DataImpulse بروتوكول SOCKS5 على المنفذ 824.
4. متغيرات البيئة والتدوير المتزامن
# env vars: ClientSession(trust_env=True) reads HTTP_PROXY/HTTPS_PROXY
# export HTTPS_PROXY="http://YOUR_LOGIN__cr.us:[email protected]:823"
# concurrency: a rotating gateway gives a fresh IP per connection
async def fetch(session, url, proxy):
async with session.get(url, proxy=proxy) as r:
return await r.json()
async with aiohttp.ClientSession() as s:
results = await asyncio.gather(*[fetch(s, "https://httpbin.org/ip", proxy) for _ in range(20)])
مع البوابة السكنية الدوارة من DataImpulse، يخرج كل واحد من هذه الطلبات المتزامنة الـ 20 من عنوان IP مختلف، من دون قائمة بروكسيات لإدارتها. ولتدوير قائمة ثابتة، مرر proxy= مختلفاً لكل طلب.
أفضل بروكسيات لـ aiohttp في لمحة
| المزود | الأفضل لـ aiohttp | سعر السكني | البروتوكولات | أبرز المزايا |
|---|---|---|---|---|
| DataImpulse | أفضل قيمة، تجريف غير متزامن | $1/GB بالدفع حسب الاستخدام | HTTP/HTTPS/SOCKS5 | مجموعة 90M+، لا تنتهي الصلاحية |
| Bright Data | للمؤسسات + مُدار | ~$4/GB ترويجي؛ $8 عادي | HTTP/HTTPS/SOCKS5 | Web Unlocker، SERP API، مجموعات بيانات |
| Oxylabs | للمؤسسات باتفاقية مستوى خدمة | من $6/GB | HTTP/HTTPS/SOCKS5 | مجموعة 175M+، واجهات API للتجريف |
| Decodo | للسوق المتوسط، تغطية جغرافية كاملة | $3.75/GB، حوالي $2 عند 1TB+ | HTTP/HTTPS/SOCKS5 | مجموعة 115M+، ثابت حتى 24h |
| IPRoyal | جلسات ثابتة طويلة | من $7.35/GB | HTTP/HTTPS/SOCKS5 | ثابت حتى 7 أيام؛ دفع حسب الاستخدام منخفض التكلفة |
| SOAX | مزيج سكني + محمول | $3.60/GB للباقة المبدئية | HTTP/HTTPS/SOCKS5 | 155M+ سكني، 33M+ محمول |
| Webshare | اقتصادي / خدمة ذاتية | من $3.50 شهرياً سكني؛ $2.99 شهرياً مركز بيانات | HTTP/SOCKS5 | باقة مجانية، أرخص مركز بيانات |
| NetNut | استقرار البروكسي السكني عبر مزود الإنترنت | من $3.53/GB | HTTP/HTTPS | عناوين IP ثابتة لمزودي إنترنت المستهلكين |

الخيارات بإيجاز
يشكل DataImpulse معيار القيمة للعمل مع aiohttp، إذ يقدم بروكسيات سكنية بسعر $1/GB بالدفع حسب الاستخدام، ومركز بيانات بسعر $0.50/GB، وبروكسيات محمولة بسعر $2/GB، وأكثر من 90M عنوان IP عبر 195 دولة، وHTTP/HTTPS وSOCKS5 عبر aiohttp_socks، مع استهداف حسب الدولة/المدينة/ASN في اسم المستخدم. لا تنتهي صلاحية حركة المرور، لذا لن تستهلك عمليات التطوير غير المتزامنة اشتراكاً. معدل النجاح المنشور 99.51%؛ وتقييم G2 هو 4.8/5؛ ودعم بشري على مدار 24/7. لتجريف عالي التزامن باستخدام aiohttp، يقدم أقل تكلفة لكل طلب ناجح.
Bright Data هو خيار المؤسسات، بسعر سكني عادي يقارب $8/GB وعرض ترويجي يقارب $4/GB، مع Web Unlocker وSERP API ومجموعات بيانات. ويقدم Oxylabs، من $6/GB ومجموعة 175M+، خياراً بمستوى SLA. أما Decodo، من $3.75/GB وثبات حتى 24h، فهو خيار متوازن للسوق المتوسط. يناسب IPRoyal، من $7.35/GB وثبات حتى 7 أيام، البرامج النصية الطويلة ذات الجلسات المستقرة. ويضيف SOAX، بسعر $3.60/GB و155M+ سكني + 33M+ محمول، مجموعة محمولة قوية. ويُعد Webshare، مع باقة مجانية ومركز بيانات من $2.99/mo، مدخلاً اقتصادياً للخدمة الذاتية، بينما يمثل NetNut، من $3.53/GB، خيار الاستقرار السكني عبر ISP.
أخطاء شائعة في بروكسيات aiohttp
- توقع دعم SOCKS5 أصلياً. لا تدعم
proxy=في aiohttp سوى HTTP، لذا ثبتaiohttp_socksواستخدمProxyConnectorلـ SOCKS5. - افتراض سلوك البروكسي عبر إصدارات aiohttp. تقبل الإصدارات الحديثة من aiohttp قيمة
ClientSession(proxy=...)لجلسة كاملة؛ أما الإصدارات الأقدم فيلزم تمريرproxy=لكل طلب أو استخدامtrust_env=Trueمع متغيرات البيئة. - غياب مهلة زمنية. قد يؤدي بروكسي متوقف إلى تعطيل coroutine؛ اضبط
aiohttp.ClientTimeoutعلى الجلسة أو الطلب. - إفراط في التزامن. لا تزال آلاف الطلبات المتزامنة عبر بوابة واحدة تبدو مسيئة، لذا حدد التزامن باستخدام
Semaphoreونظم وتيرة الطلبات. - عناوين IP لمراكز البيانات على أهداف محمية، إذ تُحظر سريعاً؛ استخدم بروكسيات سكنية ورؤوس طلبات واقعية.
البروكسيات الدوارة مقابل الثابتة مع aiohttp
لتجريف غير متزامن واسع، تُعد البوابة السكنية الدوارة مثالية، إذ يحصل كل اتصال على عنوان IP جديد، وهو ما يلائم التزامن العالي في aiohttp تماماً. أما للتدفقات ذات الحالة، كتسجيل الدخول ثم مكالمات المتابعة، فاحتفظ بجلسة ClientSession واحدة مع بروكسي ثابت لكي يستمر عنوان IP نفسه وملفات تعريف الارتباط. ومعظم أعمال aiohttp هي جلب كميات كبيرة بلا حالة، لذا فالتدوير هو الإعداد الافتراضي الشائع.
أي نوع بروكسي لـ aiohttp: سكني أم مركز بيانات أم محمول؟
- سكني ($1/GB)، الخيار الافتراضي للأهداف المحمية، مثل التجارة الإلكترونية ونتائج البحث والمنصات الاجتماعية. إذا اخترت نوعاً واحداً، فاختر هذا.
- محمول ($2/GB)، عناوين IP حقيقية من شركات الاتصالات للأهداف الأصعب وواجهات الويب على الجوال.
- مركز بيانات ($0.50/GB)، الأرخص والأسرع للعمل غير المحمي وواجهات API وبنيتك التحتية الخاصة؛ لا توجهه إلى المواقع التي تستخدم أنظمة مكثفة لمكافحة الروبوتات.
يوفر DataImpulse الأنواع الثلاثة في حساب واحد بالدفع حسب الاستخدام، بحيث يستطيع زاحف غير متزامن واحد توجيه كل طلب إلى الفئة المناسبة عبر اسم المستخدم ونقطة النهاية.
كيفية البدء مع DataImpulse + aiohttp
الخطوة 1. أنشئ حساب DataImpulse واحصل على بيانات اعتماد البروكسي السكني. لا تنتهي صلاحية العرض التمهيدي $5 / 5GB، وهو ميزانية اختبار حقيقية.
الخطوة 2. مرر proxy="http://YOUR_LOGIN__cr.us:[email protected]:823" إلى session.get()، وألحق رمز الدولة للاستهداف الجغرافي، واستخدم aiohttp_socks + المنفذ 824 لـ SOCKS5.
الخطوة 3. حدد التزامن باستخدام Semaphore، واضبط مهلة زمنية، ودع البوابة الدوارة تمنح عنوان IP جديداً لكل اتصال. راجع دروس DataImpulse وصفحة البروكسيات السكنية.
الأسئلة الشائعة
كيف أستخدم بروكسي مع aiohttp؟
مرر proxy= إلى الطلب: session.get(url, proxy="http://user:pass@host:port"). تُستخدم بيانات الاعتماد الموجودة في URL تلقائياً، أو مرر proxy_auth=aiohttp.BasicAuth("user","pass") مع URL بروكسي نظيف. بالنسبة إلى DataImpulse: http://YOUR_LOGIN__cr.us:[email protected]:823.
هل تدعم aiohttp بروكسيات SOCKS5؟
ليس بشكل أصلي، إذ تتعامل proxy= المدمجة في aiohttp مع بروكسيات HTTP فقط. لاستخدام SOCKS5، ثبت aiohttp_socks واستخدم ProxyConnector الخاص به: ProxyConnector.from_url("socks5://user:pass@host:824") يُمرر إلى ClientSession. وهو يحل DNS عبر البروكسي لتجنب التسريبات. يتيح DataImpulse بروتوكول SOCKS5 على المنفذ 824.
ما أفضل بروكسي لـ aiohttp؟
البروكسيات السكنية للأهداف المحمية، ويُعد DataImpulse بسعر $1/GB خيار القيمة، مع HTTP/HTTPS/SOCKS5 و90M+ عنوان IP وحركة مرور لا تنتهي صلاحيتها. يعد Bright Data وOxylabs خياري المؤسسات، بينما Webshare هو الأرخص للبدء. تعمل جميعها مع وسيطة proxy= في aiohttp، أو aiohttp_socks لـ SOCKS5؛ استخدم معها رؤوس طلبات واقعية وتزامناً محدوداً.
كيف أضبط بروكسياً لجميع طلبات aiohttp؟
تقبل إصدارات aiohttp الحديثة بروكسياً شاملاً للجلسة عبر ClientSession(proxy="http://..."). في الإصدارات الأقدم، مرر proxy= مع كل طلب، أو استخدم ClientSession(trust_env=True) لقراءة متغيرات البيئة HTTP_PROXY/HTTPS_PROXY. أما SOCKS5، فاضبط البروكسي على الموصل بدلاً من ذلك.
كيف أدوّر البروكسيات في aiohttp؟
وجّه proxy= إلى بوابة سكنية دوارة من DataImpulse، إذ يحصل كل طلب متزامن على عنوان IP جديد تلقائياً، وهو ما يلائم نموذج aiohttp غير المتزامن. لتدوير قائمة ثابتة، مرر URL بروكسي مختلفاً لكل طلب، مثل random.choice(). وللتدفقات ذات الحالة، احتفظ ببروكسي ثابت واحد ضمن جلسة بدلاً من ذلك.
كم تبلغ تكلفة بروكسيات aiohttp؟
يُسعَّر السكني الخام لكل GB، حيث يقدم DataImpulse $1/GB كحد للقيمة، وNetNut من $3.53، وSOAX بسعر $3.60، وDecodo بسعر $3.75، وOxylabs من $6، وIPRoyal بسعر $7.35؛ كما يقدم Webshare اشتراكات اقتصادية من $3.50/mo. تشكل الصفحة التي يتم جلبها جزءاً صغيراً من GB، لذا فإن السكني لكل GB أرخص بكثير من واجهات API المدارة لكل سجل عند التجريف عالي التزامن؛ وتناسب الخيارات المدارة الأهداف الأصعب.
