إذا كنت تبحث عن أداة تُمكّنك من اختبار الوكلاء واستخراج بيانات المواقع في آنٍ واحد، فأنت في المكان المناسب. cURL هي أداة سطر أوامر تُمكّنك من اختبار الوكلاء وإجراء بعض عمليات استخراج بيانات الويب الأساسية. تتميز cURL بسهولة استخدامها وبساطتها، كما أنها تُمكّنك من إرسال الطلبات وإضافة ملفات تعريف الارتباط وتصحيح الأخطاء والاتصال بالوكلاء، وغيرها.
سيعلمك هذا الدليل خطوة بخطوة ما هو cURL، وكيفية استخدام أوامره المختلفة، وكيفية استخدامه لتجريد الويب الخفيف، وكيفية استخدام cURL مع الخوادم الوكيلة. قد يصبح الدليل معقدًا بعض الشيء، لذا تأكد من أن لديك فهمًا أساسيًا لماهية الوكيل قبل البدء في القراءة. إن معرفة بعض أساسيات تجريف الويب ستكون مفيدة أيضًا.
جدول المحتويات
- ما هو الضفيرة؟
- كيفية تثبيت cURL
- كيفية استخدام الضفيرة
- كيفية استخدام cURL مع الخوادم الوكيلة
- 7 الحيل والنصائح الهامة
- الضفيرة مقابل Wget
- خاتمة
ما هو الضفيرة؟
cURL، وهو اختصار لـ "عنوان URL للعميل"، هو أداة سطر أوامر تسهل نقل البيانات عبر الإنترنت. يتضمن سطر الأوامر curl.exe ومكتبة مشتركة بين الأنظمة الأساسية تسمى libcurl
، والذي يتيح تبادل البيانات بين الخوادم.
متوافق مع العديد من أنظمة التشغيل الحديثة التي تستخدم بروتوكولات الإنترنت، ويعمل cURL على أجهزة تتراوح من أجهزة الكمبيوتر المحمولة إلى السيارات. يدعم العديد من بروتوكولات الإنترنت مثل:
- قاموس
- ملف
- بروتوكول نقل الملفات
- إف تي بي إس
- جوفر
- HTTP
- HTTPS
- الوصول عبر IMAP
- IMAPS
- لداب
- LDAPS
- إم كيو تي تي
- بوب3
- بوب3س
- RTSP
- SCP
- سفتب
- الشركات الصغيرة والمتوسطة
- سمبس
- SMTP
- SMTPS
- تلنت
- تفتب
قام مجتمع كبير بتطوير أدوات مختلفة لـ cURL، بما في ذلك أداة تحميل التجعيد، وهي أداة اختبار أداء برامج Linux مفتوحة المصدر. يمكن لـ Curl-loader محاكاة سلوكيات التطبيق للعديد من عملاء FTP/FTPS وHTTP/HTTPS. يمكن لعملية تحميل حليقة واحدة أن تدعم ما بين 2500 إلى 100000 عميل افتراضي، حيث يكون لكل عميل عنوان IP مصدر فريد.
أصول cURL
يعود تاريخ cURL إلى التسعينيات، عندما كانت أدوات سطر الأوامر سائدة. في عام 1996، المطور السويدي دانيال ستينبرج بدأ العمل على برنامج نصي لغرفة دردشة عبر الإنترنت (IRC) لتحويل العملات للمشاركين. قاده هذا إلى المساهمة في أداة تُسمى httpget، وهي طريقة HTTP شائعة لنقل البيانات عبر الخوادم. أسفرت تجربة ستينبرغ عن httpget 0.1، الذي يتكون من "أقل من 300 سطر من ملف C واحد".
وبعد أشهر، ظهرت بروتوكولات نقل الملفات (FTP)، مما دفع ستينبيرج إلى دمج دعم FTP في أداته وإعادة تسميتها urlget 2.0. وفي 30 مارس 1998، أضاف دعم تحميل FTP وأعاد تسمية الأداة مرة أخرى إلى cURL 3.0.
على الرغم من الإمكانات الهائلة التي تمتع بها cURL، إلا أنه لم يحظَ في البداية باهتمام يُذكر. في عام ١٩٩٨، وبعد ١٥ تحديثًا وإعادة إصدار، تجاوز عدد مرات تنزيل cURL من موقع ستينبرغ ٣٠٠ مرة. في وقت لاحق من ذلك العام، تبنى ريد هات لينكس cURL، وتبعه ديبيان في عام ١٩٩٩، ثم ماك أو إس إكس ١٠.١ في أغسطس ٢٠٠١. منذ عام ٢٠٠١، أصبح cURL ميزة افتراضية في جميع البرامج المتصلة بالإنترنت تقريبًا، بما في ذلك ويندوز ١٠، وأجهزة iOS وأندرويد، وسوني بلاي ستيشن ٥، ونينتندو سويتش، وإكس بوكس، وحتى السيارات.
لماذا استخدام الضفيرة؟
يعد cURL خيارًا شائعًا بين المطورين نظرًا لقدرته على التعامل مع العمليات المعقدة بفعالية. يتيح تعدد استخداماته وإمكانية البرمجة النصية والمكتبة المضمنة التكامل السلس مع البرامج الأخرى دون الحاجة إلى كتابة تحليل HTTP مخصص وتعليمات برمجية للشبكات.
يقدم cURL العديد فوائد، مثل:
- اختبار نقطة النهاية وقدرات التصحيح
- رؤى تفصيلية حول البيانات المرسلة والمستلمة
- تسجيل الأخطاء الشامل
- دعم لمجموعة واسعة من البروتوكولات
- التوافق مع http2 وMetalink وgzip وإلغاء الضغط التلقائي وترميز المحتوى
- ميزات متقدمة مثل تحميل FTP وملفات تعريف الارتباط ومصادقة المستخدم ودعم الوكيل واتصالات SSL والمزيد
- التبديل التلقائي للبروتوكول في حالة فشل البروتوكول الافتراضي
- بناء جملة URL المعتمد على البروتوكول
- وظيفة الحد من المعدل
- القدرة على تحديد أجزاء URL أو عناوين URL متعددة باستخدام الأقواس (على سبيل المثال، https://google.{one, two, three}.com)
- خيار لتحديد أي عدد من عناوين URL من خلال سطر الأوامر
علاوة على ذلك، يُقدّر المطورون ميزة التحقق من شهادة SSL الافتراضية في cURL ودعم HTTPS. عند اتصال cURL بخادم عبر HTTPS، يحصل على شهادة الخادم ويقارنها بشهادة CA، مما يضمن صحة الخادم البعيد.
كيفية تثبيت cURL
دعونا نستكشف كيفية تثبيت cURL على جهاز الكمبيوتر الخاص بك.
ماك
لا حاجة لتثبيت cURL على نظام macOS، فهو مُدمج بالفعل في نظام التشغيل. يمكنك استخدامه تلقائيًا في تطبيق Terminal.
شبابيك
بدءًا من نظام التشغيل Windows 10، يتضمن نظام التشغيل نسخة من cURL. ومع ذلك، يعمل الأمر cURL كاسم مستعار لـ PowerShell استدعاء WebRequest نتيجةً لذلك، سيؤدي تنفيذ أوامر cURL في طرفية ويندوز إلى تشغيل Invoke-Request تلقائيًا. لاستخدام cURL، استبدل "curl" بـ "curl.exe"، وسيُشغّل PowerShell أمر cURL بدلًا من Invoke-Request.
على سبيل المثال، للتحقق من الإصدار الحالي من cURL المثبت على جهاز Windows الخاص بك، أدخل الأمر التالي في الوحدة الطرفية:
curl.exe --version
يجب أن يشبه الإخراج:
curl 7.83.1 (Windows) libcurl/7.83.1 Schannel
Release-Date: 2022-05-13
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets
إذا كنت ترغب في معرفة المزيد عن cURL ونظام Windows، فننصحك بمشاهدة هذا الفيديو. ستتعرف على ماهية cURL، وكيفية تشغيله على نظام Windows، وكيفية تشغيل طلبات API (GET، POST، PUT، DELETE) باستخدام cURL.
لينكس
بالنسبة لمستخدمي Linux، تختلف عملية تثبيت cURL وفقًا لتوزيعك المحدد. تأتي التوزيعات الشهيرة مثل Ubuntu وFedora مزودة بـ cURL مثبت مسبقًا، مما يسمح لك باستخدامه مباشرة في الوحدة الطرفية.
بالنسبة للتوزيعات التي لا تتضمن cURL افتراضيًا، يمكنك تثبيته باستخدام مدير حزم التوزيعة. على سبيل المثال، في أنظمة التشغيل القائمة على Debian، استخدم الأمر التالي لتثبيت cURL:
sudo apt-get install curl
كيفية استخدام الضفيرة
تأكد من تثبيت cURL على جهازك. قبل استخدام cURL، تأكد من تثبيته على نظامك. إذا لم يكن الأمر كذلك، قم بتنزيله من موقع cURL.
أ. تحقق من تثبيت cURL على جهازك
للتحقق من تثبيت cURL على نظامك، اتبع الخطوات التالية:
- على جهاز كمبيوتر يعمل بنظام Windows أو MacBook، افتح واجهة سطر الأوامر أو محطة PowerShell.
- يكتب
'curl --version'
- اضغط دخول.
إذا تم تثبيت cURL على جهازك، فستتلقى رسالة مشابهة لهذه:
curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2020-11-05
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
أو
curl --version
curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
إذا رأيت رسالة مختلفة، فهذا يشير إلى أن cURL غير مثبت على جهازك، وأنك بحاجة إلى تثبيته.
ب. حدد بناء جملة cURL المناسب للاستخدام
افتراضيًا، يستخدم cURL بروتوكول HTTP، بالصيغة التالية: cURL [options] [URL]
نظرًا لأن cURL يدعم بروتوكولات متعددة، فقد يختلف بناء الجملة قليلاً لكل بروتوكول. فيما يلي بعض الأمثلة على أوامر cURL لبروتوكولات الشبكة المختلفة:
- بروتوكول نقل الملفات (FTP): cURL -T "الملف المحدد" "ftp://[target-destination]"
- بروتوكول نقل البريد البسيط (SMTP): cURL smtp://[smtp-server] –البريد من [المرسل] –البريد-rcpt [المستلم] –تحميل الملف [ملف محتوى البريد]
- بروتوكول شبكة القاموس [DICT]: cURL "dict://dict.org/d:hi"
من الضروري معرفة بروتوكولات الشبكة التي ستعمل معها لتحسين تجربة cURL الخاصة بك.
ج. استخدم بناء جملة cURL المناسب لأهدافك
يتيح لك cURL تنفيذ مهام مختلفة، مثل تنزيل الملفات وتحميلها أو التعامل مع مصادقة المستخدم. تتطلب كل مهمة بناء جملة cURL مختلفًا، ويرجع ذلك أساسًا إلى المعلمات المحددة وبروتوكولات الشبكة المعنية.
فيما يلي بعض المهام الشائعة وأوامر cURL المقابلة لها:
- لتنزيل ملف: حليقة -o [اسم الملف] [URL]
- لتحميل ملف باستخدام بروتوكول FTP: حليقة -u [اسم المستخدم: كلمة المرور] -T [مسار الملف المحلي] بروتوكول نقل الملفات: // [URL]
- لطلب رؤوس HTTP: حليقة -I [URL]
كيفية استخدام cURL لتجريف الضوء
يمكن استخدام cURL لتجريد الويب الخفيف مع لغة برمجة مثل PHP.
قبل البدء في استخراج البيانات، تأكد من مراجعة ملف robots.txt الخاص بموقع الويب المستهدف. التزم بالقواعد، حتى لو بدت غير منطقية، إذ يحق لأصحاب مواقع الويب وضع معايير وقيود. يعتبر الالتزام بملف robots.txt عند الزحف إلى الويب ممارسة قياسية، وقد يؤدي عدم الالتزام إلى تعقيدات قانونية.
مع وضع ذلك في الاعتبار، إليك دليل حول استخدام cURL لكشط الويب الخفيف.
لبدء عملية الكشط، اتبع الخطوات التالية:
- اختر لغة برمجة لاستخراج البيانات، مثل PHP. سيستخدم هذا البرنامج التعليمي لغة PHP.
- قم بإنشاء ملف PHP جديد.
- قم بتهيئة مقبض cURL باستخدام curl_init.
$curl = curl_init
- قم بتعيين CURLOPT_RETURNTRANSFER على TRUE، مما يؤدي إلى إرجاع صفحة النقل كسلسلة. يخبر هذا الأمر cURL بتخزين الصفحة المسروقة كمتغير بدلاً من عرض الصفحة بأكملها بشكل افتراضي: curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
- ابدأ الطلب وقم بالتحقق من الأخطاء:
$page = curl_exec($curl)
;if(curl_errno($curl)) // check for execution errors { echo 'Scraper error: ' . curl_error($curl); exit; }
- إغلاق الاتصال:
curl_close($curl);
لاستخراج جزء محدد فقط من المعلومات، ستحتاج إلى تحديد ما تريد استخراجه ضمن id=”case_textlist”. افتراضيًا، سيقوم cURL باستخراج الصفحة بأكملها:
$regex = '<div id="case_textlist">(.*?)</div>/s';
if (preg_match($regex, $page, $list)) echo $list[0]; else echo "Not found";
لتحليل موقع ويب باستخدام خادم وكيل في PHP، يمكنك استخدام مكتبة cURL. إليك مثال على نص PHP يقوم بجلب صفحة ويب باستخدام خادم وكيل:
كود PHP:
<?php
// Set the URL to fetch
$url = "http://www.example.com";
// Set the proxy server and port
$proxy = "proxy.example.com:8080";
// Create a new cURL resource
$ch = curl_init();
// Set the cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Fetch the URL and output the response
$response = curl_exec($ch);
echo $response;
// Close the cURL resource
curl_close($ch);
?>
في البرنامج النصي أعلاه، يمكنك تغيير متغير $url إلى عنوان URL لموقع الويب الذي تريد تحليله، وتغيير متغير $proxy إلى عنوان ومنفذ الخادم الوكيل الذي تريد استخدامه. يتم استخدام الدالة curl_setopt() لتعيين خيارات cURL، بما في ذلك عنوان URL والخادم الوكيل ولإرجاع الاستجابة كسلسلة بدلاً من إخراجها مباشرةً. وأخيرًا، يتم استخدام الدالة curl_exec() لجلب عنوان URL ويتم إخراج الاستجابة باستخدام الصدى. يتم استدعاء الدالة Curl_Close() لإغلاق مورد cURL.
في الفيديو أدناه، سوف تتعلم كيفية إنشاء كاشط وكيل عن طريق تحميل عناوين URL لموقع الويب باستخدام cURL ومطابقتها مع التعبيرات العادية.
كيفية استخدام cURL للتجريد المتقدم
فيما يلي بعض تكوينات cUrl المحسّنة التي يمكن أن تساعد في تحسين جلسات تجريف الويب لديك.
العنوان الفرعي: دمج وكيل المستخدم
عند استخدام cURL لتنزيل الروابط أو استخراجها، فإنه يعرّف نفسه لموقع الويب على أنه cUrl. في بعض الحالات، قد لا ترغب في ذلك، حيث قد تتعرف مواقع ويب معينة على cUrl باعتباره روبوتًا وتحظره.
لتجنب ذلك، أضف وكيل مستخدم باستخدام الخيار -A أو -user-agent. في هذا المثال، استخدمنا وكيل مستخدم Firefox 65 على Windows 10:
curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
وبدلاً من ذلك، يمكنك إرسال وكيل المستخدم داخل الرأس باستخدام الخيار -H:
curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
العنوان الفرعي: تكوين الرؤوس
عند استخراج بيانات موقع إلكتروني، من المهم تجنب اعتباره روبوتًا. تمنع العديد من المواقع الإلكترونية الآن الروبوتات من استخراج بياناتها لأنها قد تُرهق الخادم وتُعيق خدمة المستخدمين.
لتحقيق ذلك، تحتاج إلى إرسال الرؤوس المناسبة باستخدام cURL.
أولاً، حدد العناوين التي تُرسلها عادةً إلى الموقع المستهدف بالنقر بزر الماوس الأيمن واختيار "فحص". بعد ذلك، انتقل إلى علامة التبويب "الشبكة". حدّث الموقع المستهدف، وسترى الطلبات المُرسلة أثناء تحميله. لفحص الطلب بدقة أكبر، يمكنك أيضًا النقر بزر الماوس الأيمن عليه ونسخه كسطر أوامر cUrl.
بعد ذلك، قم بتكوين الرؤوس في cUrl باستخدام الخيار -H أو -header. على سبيل المثال، إليك كيفية إرسال رأس "قبول" إلى الموقع المستهدف:
curl -x https://fineproxy.de/ -v -H "Accept: text/html"
كيفية استخدام cURL مع الخوادم الوكيلة
يؤدي استخدام cURL مع الوكيل إلى تمكين حالات الاستخدام المختلفة، مثل استخراج الويب، حيث يكون الوكيل ضروريًا لمنع حظر الموقع وحظره. ستتعلم في هذا الدليل كيفية إرسال البيانات عبر خادم وكيل باستخدام cURL.
اتبع هذه الخطوات لاستخدام cURL مع وكيل:
1. قم بإعداد الخادم الوكيل
أولاً، قم بإعداد الوكيل الخاص بك وفقًا للتعليمات المقدمة من مزود الوكيل الخاص بك. للتحقق من إعداد الوكيل الخاص بك بشكل صحيح، أدخل الأمر التالي في جهازك الطرفي:
curl https://httpbin.org/ip
يُرجع هذا الأمر عنوان IP الخاص بجهازك. إذا تطابقت القيم مع عنوان IP الأصلي لجهازك، فهذا يعني أن خادم الوكيل غير مُعدّ بشكل صحيح. أما إذا لم تتطابق، فهذا يعني أن خادم الوكيل مُهيأ بشكل صحيح.
2. قم بتكوين الوكيل الخاص بك للعمل مع أوامر cURL
هناك ثلاث طرق لتكوين الوكيل الخاص بك للاستخدام مع cURL:
أ. استخدام ملف التكوين (.curlrc)
ملف التكوين هو ملف نصي يحتوي على الإعدادات المطلوبة، ويتم حفظه بتنسيق ملف .curlrc في دليل النظام لديك لسهولة الوصول إليه عند تشغيل أوامر cURL.
يحتوي ملف تكوين الوكيل على بيانات بهذا التنسيق:
proxy = "[protocol://][host][:port]"
يمكنك حفظ إعدادات التكوين المتعددة في الملف وتنشيطها حسب الحاجة. قبل تشغيل أوامر cURL، افتح الملف، وسيستخدم أي أمر cURL تقوم بتنفيذه إعدادات الوكيل من ملف التكوين.
يعد إنشاء ملف تكوين هو أفضل طريقة لأولئك الذين يستخدمون cURL بشكل متكرر مع وكيل ويستخرجون كميات كبيرة من البيانات. إنه يوفر الوقت عن طريق إلغاء الحاجة إلى تكوين الوكيل لـ cURL في كل مرة.
ب. استخدام وسيطات سطر الأوامر
هذه الطريقة مناسبة لاستخدام الوكيل لمرة واحدة مع أوامر cURL، لأنها تتطلب فقط بناء جملة وكيل cURL المباشر. بناء الجملة هو كما يلي:
curl -x "[protocol://][host][:port]" [URL] [options]
نظرًا لأن البروتوكول الافتراضي لـ cURL هو HTTP، فيجب عليك تحديد تفاصيل البروتوكول وخادم الوكيل، خاصةً إذا كنت تستخدم بروتوكول شبكة مختلفًا.
ج. استخدام متغيرات البيئة
تتضمن الطريقة الثالثة تعيين متغيرات http_proxy وhttps_proxy، المعروفة باسم متغيرات البيئة، والتي تؤثر على العمليات الجارية على مستوى النظام. تعد هذه الأوامر جزءًا من نظام التشغيل ويمكنها تجاوز المعلمات الأخرى.
يكون بناء جملة إعدادات وكيل cURL عبر متغيرات البيئة كما يلي:
export http_proxy="[protocol://][host][:port]"
export https_proxy="[protocol://][host][:port]"
بعد تشغيل هذه الأوامر، سيمر أي أمر cURL تُنفّذه تلقائيًا عبر خادم الوكيل. الآن، لنتحدث أكثر عن هذه الطريقة.
استخدام cURL مع وكيل عبر متغيرات البيئة
يشبه متغير البيئة كائنًا يقوم بتخزين قيمة قابلة للتحرير في الذاكرة والتي يمكن استخدامها بواسطة برنامج واحد أو أكثر. في هذه الحالة، يمكننا تمرير متغير يسمى http_proxy أو https_proxy إلى cURL، والذي يحتوي على معلومات الوكيل الخاصة بنا، ولن نحتاج إلى تحديدها في كل مرة نقوم فيها بتشغيل الأمر. يمكنك تحقيق ذلك عن طريق تشغيل هذا الأمر:
$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<YOUR-API-KEY>@proxy.fineproxy.de:80"
يرجى ملاحظة أنه يجب عليك تسمية متغيرك http_proxy أو https_proxy ليتمكن cURL من فهمه. هذا كل ما في الأمر. لم تعد بحاجة إلى تقديم بيانات اعتمادك في كل مرة تُشغّل فيها الأمر، ويمكنك الآن تشغيل cURL بهذه البساطة:
$ curl http://httpbin.org/get
سيزودنا هذا بالمخرجات التالية:
{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": "http://httpbin.org/get" }
كما ترون، عنوان IP هو عنوان الوكيل، مما يؤكد أنك قمت بعمل ممتاز في إعداد الوكيل الخاص بك. في هذه المرحلة، يمكننا تشغيل أي أمر cURL دون تحديد معلومات الوكيل، حيث سيتعامل معه cURL نيابةً عنا.
7 الحيل والنصائح الهامة
في هذا القسم، سنقدم بعض الحيل المثيرة للاهتمام والنصائح التي لا تقدر بثمن لاستخدام الوكلاء مع cUrl، والمصممة خصيصًا لتلبية احتياجاتك الخاصة.
نصيحة 1: تعيين الوكلاء حصريًا لـ cUrl
لتعيين الوكلاء فقط للمهام المستندة إلى cUrl، استخدم تسلسل الأوامر التالي:
-
cd ~ $ nano .curlrc
- أضف هذا السطر إلى الملف:
proxy=http://user:pwd@IP_address_or_FQDN:port
مثال:
proxy=http://testuser:[email protected]:3128
- قم بتشغيل cUrl كالمعتاد:
$ curl "https://www.reddit.com"
نصيحة 2: تمكين وتعطيل الوكلاء
قم بإنشاء اسم مستعار في ملف .bashrc الخاص بك في المحرر الخاص بك لإنجاز هذا:
$ cd ~
alias proxyon="export http_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port';export https_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"
مثال:
alias proxyon="export http_proxy='http://testuser:[email protected]:3128';export https_proxy='http://testuser:[email protected]:3128'"
تحقق بسرعة من إعداد الاسم المستعار عن طريق تشغيل أمر الاسم المستعار في الجهاز. احفظ ملف .bashrc وقم بتحديث الصدفة باستخدام:
$ ~/.bashrc
نصيحة 3: تجاوز أخطاء شهادة SSL
عندما يواجه cUrl أخطاءً في شهادات SSL، فإنه يحظر هذه الطلبات. لتخطي أخطاء شهادات SSL أثناء التصحيح، خاصةً في الحالات غير المتكررة، أضف -k أو –insecure إلى سطر أوامر cUrl:
curl -x "[protocol://][host][:port]" -k [URL]
نصيحة 4: الحصول على مزيد من المعلومات حول الطلب
إذا لم تعمل طلباتك كما هو متوقع، فقد تحتاج إلى فحص مسار الطلب ورؤوسه والأخطاء المختلفة. للتحقق من الطلب، أضف -v (–verbose) إلى الطلب بعد cUrl، مما سيؤدي إلى عرض جميع رؤوس الطلبات والاتصالات التي تم اختبارها.
نصيحة 5: تجاهل الوكلاء لطلب واحد
لتجاوز الوكيل لطلب معين، استخدم سطر الأوامر التالي:
curl --proxy "http://user:pwd@Proxy_FQDN_or_IPAddress" "https://reddit.com"
او استعمل:
$ curl --noproxy "*" https://www.reddit.com
لتجاوز الوكلاء تماما. باستخدام الخيار -v، يُظهر الاتصال الذي ينتقل مباشرة إلى Reddit دون استخدام أي وكيل.
نصيحة 6: استخدام بروكسيات SOCK
إذا كنت تريد استخدام أي نوع من بروكسي SOCK (4/4a/5/5h)، تظل بنية التعليمات البرمجية كما كانت من قبل، باستثناء استبدال القسم ذي الصلة بنوع SOCKS المناسب:
curl -x "socks5://user:pwd@Proxy_IP_or_FQDN:Port" https://www.reddit.com
مثال:
$ curl -x "socks5://testuser:[email protected]:3128" https://www.reddit.com
نصيحة احترافية 7: إذا لم يتم تحديد أي بروتوكول، فسيتم تعيين cURL افتراضيًا على SOCKS4!
الضفيرة مقابل Wget
Wget هي أداة سطر أوامر تتضمن العديد من الميزات التي تُمكّن نقل الملفات باستخدام بروتوكولات الشبكة القياسية مثل HTTP وHTTPS وFTP. اسمها مُركّب من الحرف الأول من كلمة WWW وكلمة get، مما يُشير إلى أن Wget صُمّم أساسًا لتبادل بيانات الويب.
بناء الجملة القياسي لأوامر Wget هو:
Wget [option] [URL]
أوامر Wget قابلة للمقارنة بأوامر cURL، وهي تؤدي وظائف مماثلة ولكن بطرق مختلفة.
5 أوجه التشابه بين cURL وWget
- كلاهما أدوات مساعدة لسطر الأوامر يمكنها تنزيل الملفات من FTP وHTTP أو HTTPS ودعم طلبات HTTP POST.
- كلاهما برمجيات مفتوحة المصدر.
- تم تقديم كل من cURL وWget في نفس العام، 1996.
- كلاهما لهما تراخيص مماثلة، رخصة GPLv3.
- كلاهما عبارة عن حزم برامج خفيفة الوزن تعمل على العديد من أنظمة التشغيل.
10 اختلافات بين cURL وWget
يكمن الاختلاف الرئيسي بين cURL وWget في الطريقة التي تنفذ بها هذه الأدوات المساعدة الطلبات والموارد التي تستخدمها لتحقيق أهدافها. ويوضح الجدول التالي هذه الاختلافات:
لفة | وجيت | |
---|---|---|
1. المكتبة | بدعم من مكتبة libcURL | لا حاجة للمكتبة |
2. العمليات | ينقل البيانات في عملية واحدة، بدون تنزيل متكرر | يدعم التنزيل العودي |
3. البروتوكولات | يدعم مجموعة من بروتوكولات الشبكة | يدعم فقط HTTP(S) وFTP |
4. تنزيل | يتطلب -o أو -O لتنزيل عنوان URL بعيد إلى ملف محلي | لا يحتاج إلى -o أو -O لتنزيل عنوان URL بعيد |
5. التحميلات | يمكن تحميل ونقل البيانات في كلا الاتجاهين | يدعم فقط طلبات HTTP POST البسيطة |
6. الوكيل | يدعم أنواع الوكيل HTTPS وSOCKS 4 وSOCKS 5 | يدعم وكيل HTTP ولكن ليس أنواع الوكيل SOCKS |
7. المصادقة | يدعم تقنيات المصادقة الإضافية لوكلاء HTTP | يدعم فقط عمليات المصادقة الأساسية لوكلاء HTTP |
8. قابلية النقل | أكثر سهولة في الحمل ويأتي مثبتًا مسبقًا على نظامي التشغيل Windows وmacOS | أقل قابلية للحمل وغير مثبتة مسبقًا على نظامي التشغيل Windows وmacOS |
9. الميزات | يتطلب تحديد كل ميزة مباشرة | تم تمكين ميزات مثل ملفات تعريف الارتباط والطوابع الزمنية افتراضيًا |
10. المتطلبات | لا يتطلب حزمة gnulib أو مترجم C99 | يتطلب برنامج التحويل البرمجي gnulib وC99 متى يتم استخدام cURL أو Wget |
في معظم الحالات، يكون cURL هو الخيار الأفضل، ولكن هناك حالات يكون فيها Wget أكثر ملاءمة. يجب عليك تحديد أي من أدوات سطر الأوامر المساعدة هذه ستساعدك على إكمال مهامك بشكل أسرع وأكثر فعالية. على سبيل المثال:
- يعالج Wget عمليات إعادة محاولة التنزيل عبر الاتصالات المهتزة بشكل أفضل من cURL.
- يوفر Wget إمكانات التنزيل مثل التنزيلات العودية الحاسمة والتحكم في عرض النطاق الترددي الذي يفتقر إليه cURL.
لذلك، يُفضّل استخدام أوامر Wget في مثل هذه الحالات. كذلك، عند استخدام بروتوكول شبكة غير HTTP/HTTPS وFTP، يُعدّ cURL الخيار الأفضل. يعتمد اختيارك لاستخدام cURL أو Wget دائمًا على خصائص المهام التي تُنفّذها.
خاتمة
تعد أوامر cURL أدوات قوية ومتعددة الاستخدامات لأي شخص يحتاج إلى نقل كميات كبيرة من البيانات عبر الشبكة. يعد استخدام عناوين URL مع الوكلاء بمثابة ترقية مرغوبة تسمح لك بإنجاز أي مهمة تقريبًا. يضمن هذا المزيج خصوصية البيانات وأمانها دون فقدان تعدد استخدامات أوامر cURL. على الرغم من أن Wget واسع النطاق، إلا أن cURL هو المفضل بسبب واجهته سهلة الاستخدام وإمكانياته القوية.
بناءً على ما ناقشناه حتى الآن، قد تفكر في تجربة التأثيرات الرائعة لـ cURL. إذا لم تفكر فيها بعد، فعليك فعل ذلك. ابقَ cURLy (جناس مقصود).