In this Article
Scrapy هو إطار عمل Python المخصص للإنتاج من أجل تجريف الويب الجاد، وهو سريع وغير متزامن ومصمم للزحف على نطاق واسع. لكن إذا زحفت إلى هدف حقيقي من IP واحد لمركز بيانات، فستتعرض لتقييد المعدل أو الحظر خلال دقائق. والحل هو توجيه Scrapy عبر بروكسيات، ويفضل أن تكون سكنية، لتبدو الطلبات كأنها صادرة من مستخدمين حقيقيين. والخبر الجيد هو أن دعم البروكسي في Scrapy مدمج عبر request.meta['proxy']، ومع بوابة تدوير لن تحتاج حتى إلى إدارة قائمة IP. يوضح هذا الدليل بدقة كيفية استخدام بروكسي مع Scrapy، لكل طلب، أو عبر middleware لجميع الطلبات، ومع التدوير، ثم يرتب أفضل 8 بروكسيات لـ Scrapy في 2026. يمثل DataImpulse بسعر $1/GB معيار القيمة.
أنا Andrii Byzov، مدير تسويق جزئي متمرس في الذكاء الاصطناعي، وأشغل زواحف Scrapy يومياً. ستجد أدناه إعداداً جاهزاً للنسخ واللصق، وتنبيهاً بشأن ترتيب middleware، والمزودين الذين يستحقون ميزانيتك.
حقائق أساسية
- عيّن البروكسي باستخدام
request.meta['proxy']، إذ إنHttpProxyMiddlewareالمدمج في Scrapy يقرأه ويتولى المصادقة من URL البروكسي (http://user:pass@host:port). - طبّقه على كل طلب باستخدام DownloaderMiddleware صغير، أو عيّنه لكل طلب في
start_requests. - تعني بوابة التدوير عدم الحاجة إلى قائمة IP. وجّه
meta['proxy']إلى نقطة نهاية سكنية دوارة، مثل DataImpulse، وسيخرج كل طلب من IP جديد تلقائياً. - لقائمة IP ثابتة، استخدم
scrapy-rotating-proxies، عبرROTATING_PROXY_LIST، فهو يدوّرها ويكتشف الحظر ويأتي قبلHttpProxyMiddlewareفي الترتيب، وأولوياته الافتراضية تفعل ذلك بالفعل. - يدعم Scrapy بروكسيات HTTP/HTTPS محلياً، وليس SOCKS5، لذا استخدم نقطة نهاية HTTP، منفذ DataImpulse 823. اجمع بين السكني بسعر $1/GB، ومركز البيانات بسعر $0.50/GB، والمحمول بسعر $2/GB ضمن مجموعة تتجاوز 90M+ وعبر 195 دولة.
كيفية استخدام بروكسي مع Scrapy
1. لكل طلب عبر meta['proxy']
import scrapy
class IpSpider(scrapy.Spider):
name = "ip"
def start_requests(self):
proxy = "http://YOUR_LOGIN__cr.us:[email protected]:823" # __cr.us = US
yield scrapy.Request("https://httpbin.org/ip", meta={"proxy": proxy})
def parse(self, response):
self.log(response.text) # confirm the egress IP
يلتقط HttpProxyMiddleware في Scrapy، والمفعّل افتراضياً، قيمة meta['proxy'] ويضبط ترويسة Proxy-Authorization من بيانات الاعتماد في URL، من دون حاجة إلى شيفرة إضافية.
2. middleware لتطبيق البروكسي على كل طلب
أكثر نظافة للمشروع بأكمله، إذ تعيّن البروكسي مرة واحدة فينطبق على جميع الطلبات:
# middlewares.py
class DataImpulseProxyMiddleware:
PROXY = "http://YOUR_LOGIN__cr.us:[email protected]:823"
def process_request(self, request, spider):
request.meta["proxy"] = self.PROXY
# settings.py — run BEFORE the built-in HttpProxyMiddleware (750)
DOWNLOADER_MIDDLEWARES = {
"myproject.middlewares.DataImpulseProxyMiddleware": 350,
}
3. تدوير قائمة IP ثابتة باستخدام scrapy-rotating-proxies
إذا كانت لديك قائمة بروكسيات بدلاً من بوابة تدوير واحدة، فإن scrapy-rotating-proxies يدوّرها ويكتشف الحظر:
# pip install scrapy-rotating-proxies
# settings.py
ROTATING_PROXY_LIST = [
"http://YOUR_LOGIN__cr.us:[email protected]:823",
# ...more endpoints/sessions...
]
DOWNLOADER_MIDDLEWARES = {
"rotating_proxies.middlewares.RotatingProxyMiddleware": 610,
"rotating_proxies.middlewares.BanDetectionMiddleware": 620,
}
مع بوابة DataImpulse السكنية الدوارة، لن تحتاج عادةً إلى ذلك، فنقطة نهاية واحدة تعيد IP جديداً لكل طلب. استخدم scrapy-rotating-proxies عندما تدير العديد من الجلسات المنفصلة أو تريد اكتشاف الحظر المدمج. ملاحظة: دعم البروكسي في Scrapy يقتصر على HTTP/HTTPS، لذا استخدم نقطة نهاية HTTP، المنفذ 823، وليس SOCKS5. راجع دروس DataImpulse لمعلمات الجلسة.
أفضل بروكسيات Scrapy في لمحة
| المزود | الأفضل لـ Scrapy | سعر السكني | البروتوكولات | أبرز المزايا |
|---|---|---|---|---|
| DataImpulse | أفضل قيمة، زواحف داخلية | $1/GB PAYG | HTTP/HTTPS | مجموعة 90M+، بوابة تدوير، لا تنتهي الصلاحية |
| Bright Data | للشركات والخدمات المدارة | ~$4/GB ترويجي؛ $8 عادي | HTTP/HTTPS/SOCKS5 | Web Unlocker، SERP API، مجموعات بيانات |
| Oxylabs | SLA للشركات | من $6/GB | HTTP/HTTPS/SOCKS5 | مجموعة 175M+، API للتجريف |
| Decodo | السوق المتوسطة، شبكة جغرافية كاملة | $3.75/GB (~$2 عند 1TB+) | HTTP/HTTPS | مجموعة 115M+، جلسات ثابتة حتى 24h |
| IPRoyal | جلسات ثابتة طويلة | من $7.35/GB | HTTP/HTTPS/SOCKS5 | ثبات حتى 7 أيام؛ PAYG اقتصادي |
| SOAX | مزيج سكني ومحمول | $3.60/GB Starter | HTTP/HTTPS | 155M+ سكني، 33M+ محمول |
| Webshare | اقتصادي وخدمة ذاتية | من $3.50/mo سكني؛ $2.99/mo مركز بيانات | HTTP/SOCKS5 | فئة مجانية، أرخص مركز بيانات |
| NetNut | استقرار ISP السكني | من $3.53/GB | HTTP/HTTPS | IP ثابت من ISP للمستهلكين |

الاختيارات باختصار
يمثل DataImpulse معيار القيمة لزواحف Scrapy، بسكني مقابل $1/GB وفق الدفع حسب الاستخدام، ومركز بيانات $0.50/GB، ومحمول $2/GB، مع أكثر من 90M+ من IP عبر 195 دولة، وبوابة HTTP/HTTPS دوارة تمنح IP جديداً لكل طلب، واستهداف الدولة والمدينة وASN ضمن اسم المستخدم. لا تنتهي صلاحية حركة المرور، لذلك لا تستهلك عمليات التطوير اشتراكاً. معدل النجاح المنشور 99.51%، وتقييم G2 هو 4.8/5، مع دعم بشري على مدار 24/7. للتجريف الداخلي بحجم كبير، يقدم أقل تكلفة لكل طلب ناجح.
يُعد Bright Data خيار الشركات، بسعر سكني عادي يقارب $8/GB وعرض ترويجي يقارب $4/GB، مع Web Unlocker وSERP API ومجموعات البيانات. أما Oxylabs، من $6/GB ومجموعة 175M+، فهو خيار بدرجة SLA مع API للتجريف. ويقدم 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 السكني.
البروكسيات الدوارة مقابل الثابتة مع Scrapy
للزحف الواسع، تعد البوابة السكنية الدوارة مثالية، إذ يحصل كل طلب Scrapy على IP جديد، ما يوزع الحمل ويتجنب قيود المعدل من دون أي إدارة لـ IP. أما التدفقات ذات الحالة، مثل تسجيل الدخول ثم طلبات المتابعة، فاستخدم جلسة ثابتة لكي يستمر IP نفسه خلال التسلسل، وأبقِ ملفات تعريف الارتباط مفعّلة، إذ إن middleware ملفات تعريف الارتباط في Scrapy مفعّل افتراضياً. معظم عمليات زحف Scrapy واسعة ومن دون حالة، لذا فالتدوير هو الإعداد الافتراضي الشائع، واحجز الثبات للأهداف التي تتطلب مصادقة أو خطوات متعددة.
أخطاء شائعة في بروكسي Scrapy
- ترتيب middleware. يجب أن يعمل middleware بروكسي مخصص أو
scrapy-rotating-proxiesقبلHttpProxyMiddlewareالمدمج، أي برقم أولوية أقل، وإلا فلن يُطبق البروكسي. - توقع عمل SOCKS5. يدعم Scrapy HTTP/HTTPS فقط للبروكسيات، لذا استخدم نقطة نهاية HTTP وليس URL لـ SOCKS.
- الزحف بعنف مفرط. فعّل
AUTOTHROTTLE_ENABLEDواضبطCONCURRENT_REQUESTS/DOWNLOAD_DELAYبشكل معقول حتى لا تتعرض IP الدوارة لضغط مفرط. - استخدام IP مركز بيانات مع أهداف محمية، إذ تُحظر بسرعة، لذا استخدم السكني للمواقع الثقيلة بأنظمة مكافحة الروبوتات.
- عدم التعامل مع الحظر. أضف اكتشاف إعادة المحاولة أو الحظر، مثل BanDetectionMiddleware في
scrapy-rotating-proxiesأوRETRY_HTTP_CODESمخصصاً، لكي يعاد الطلب المحظور على IP جديد بدلاً من تحليله كبيانات.
أي نوع بروكسي لـ Scrapy، سكني أم مركز بيانات أم محمول؟
- السكني ($1/GB)، وهو الإعداد الافتراضي للأهداف المحمية، مثل التجارة الإلكترونية وSERPs والشبكات الاجتماعية. إذا اخترت نوعاً واحداً، فاختر هذا.
- المحمول ($2/GB)، وهو IP حقيقي من شركات الاتصالات للأهداف الأصعب وواجهات الويب المحمول.
- مركز البيانات ($0.50/GB)، وهو الأرخص والأسرع للزحف غير المحمي وAPI وبنيتك التحتية الخاصة، لكن لا توجّهه إلى المواقع الثقيلة بأنظمة مكافحة الروبوتات.
يوفر DataImpulse الأنواع الثلاثة ضمن حساب واحد بالدفع حسب الاستخدام، لذلك يمكن لمشروع Scrapy واحد توجيه كل طلب إلى الفئة المناسبة عبر اسم المستخدم ونقطة النهاية.
كيفية البدء مع DataImpulse وScrapy
الخطوة 1. أنشئ حساب DataImpulse واحصل على بيانات اعتماد السكني. العرض التمهيدي $5 / 5GB لا تنتهي صلاحيته، وهو ميزانية اختبار حقيقية.
الخطوة 2. عيّن request.meta["proxy"] = "http://YOUR_LOGIN__cr.us:[email protected]:823" لكل طلب، أو أضف middleware البروكسي ذا السطر الواحد لتطبيقه في كل مكان. أضف رمز الدولة إلى اسم المستخدم للاستهداف الجغرافي.
الخطوة 3. فعّل AUTOTHROTTLE، وأضف التعامل مع إعادة المحاولة أو الحظر، ودع بوابة التدوير تمنح IP جديداً لكل طلب. راجع دروس DataImpulse وصفحة البروكسيات السكنية.
الأسئلة الشائعة
كيف أستخدم بروكسي في Scrapy؟
عيّن request.meta['proxy'] = 'http://user:pass@host:port' في طلباتك، إذ إن HttpProxyMiddleware المدمج في Scrapy يقرأه ويتولى المصادقة من URL. للمشروع بأكمله، أضف DownloaderMiddleware صغيراً يعيّن request.meta['proxy'] في كل طلب. بالنسبة إلى DataImpulse: http://YOUR_LOGIN__cr.us:[email protected]:823.
ما أفضل بروكسي لـ Scrapy؟
البروكسيات السكنية للأهداف المحمية، ويُعد DataImpulse بسعر $1/GB خيار القيمة، مع 90M+ من IP وبوابة HTTP/HTTPS دوارة وحركة مرور لا تنتهي صلاحيتها. يمثل Bright Data وOxylabs خياري الشركات، بينما Webshare الأرخص للبدء. تعمل جميعها مع meta['proxy'] في Scrapy، ويعتمد الاختيار على السعر وجودة المجموعة وما إذا كنت تحتاج إلى API مدارة.
كيف أدوّر البروكسيات في Scrapy؟
الأسهل هو توجيه meta['proxy'] إلى بوابة سكنية دوارة مثل DataImpulse، إذ يحصل كل طلب على IP جديد تلقائياً من دون قائمة لإدارتها. لقائمة بروكسيات ثابتة، ثبّت scrapy-rotating-proxies وعيّن ROTATING_PROXY_LIST وضع middleware الخاص به قبل HttpProxyMiddleware المدمج. كما يكتشف الحظر ويعيد المحاولة على IP جديد.
هل يدعم Scrapy بروكسيات SOCKS5؟
ليس محلياً، إذ يدعم HttpProxyMiddleware في Scrapy بروكسيات HTTP وHTTPS فقط. استخدم نقطة نهاية HTTP، منفذ DataImpulse 823، للبروكسيات السكنية. سيتطلب SOCKS5 معالج تنزيل مخصصاً، ونادراً ما تكون هناك حاجة إليه لأن بوابة HTTP تغطي زحف Scrapy.
لماذا لا يعمل بروكسي Scrapy لدي؟
السبب الأكثر شيوعاً هو ترتيب middleware، إذ يجب أن يعمل middleware بروكسي مخصص أو scrapy-rotating-proxies قبل HttpProxyMiddleware المدمج، أي برقم أولوية أقل. تشمل الأسباب الأخرى استخدام URL لـ SOCKS بدلاً من HTTP، أو غياب بيانات الاعتماد في URL البروكسي، أو IP مركز بيانات محظور على موقع محمي، فانتقل إلى السكني. افحص IP الصادر عبر https://httpbin.org/ip.
كم تبلغ تكلفة بروكسيات Scrapy؟
يُسعّر السكني الخام لكل 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 المدارة لكل سجل لزحف Scrapy ذي الحجم الكبير، بينما تناسب الخيارات المدارة الأهداف الأصعب.
