إذا كنت تبحث عن أداة تسمح لك باختبار الوكلاء واستخراج المواقع في وقت واحد، فقد وصلت إلى المكان الصحيح. 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 يحمل إمكانات كبيرة، إلا أنه لم يحظ سوى القليل من الاهتمام في البداية. في عام 1998، بعد 15 تحديثًا وإعادة إصدار، حصل cURL على أكثر من 300 عملية تنزيل من موقع Stenberg. في وقت لاحق من ذلك العام، اعتمد Red Hat Linux cURL، وتبعه Debian في عام 1999 وMac OS X 10.1 في أغسطس 2001. منذ عام 2001، أصبح cURL ميزة افتراضية في كل البرامج المتصلة بالإنترنت تقريبًا، بما في ذلك أجهزة Windows 10 وiOS وAndroid، Sony PS5 وNintendo Switch وXbox وحتى السيارات.
لماذا استخدام الضفيرة؟
يعد cURL خيارًا شائعًا بين المطورين نظرًا لقدرته على التعامل مع العمليات المعقدة بفعالية. يتيح تعدد استخداماته وإمكانية البرمجة النصية والمكتبة المضمنة التكامل السلس مع البرامج الأخرى دون الحاجة إلى كتابة تحليل HTTP مخصص وتعليمات برمجية للشبكات.
يقدم cURL العديد فوائد، مثل:
- اختبار نقطة النهاية وقدرات التصحيح
- رؤى تفصيلية حول البيانات المرسلة والمستلمة
- تسجيل الأخطاء الشامل
- دعم لمجموعة واسعة من البروتوكولات
- التوافق مع http2 وMetalink وgzip وإلغاء الضغط التلقائي وترميز المحتوى
- ميزات متقدمة مثل تحميل FTP وملفات تعريف الارتباط ومصادقة المستخدم ودعم الوكيل واتصالات SSL والمزيد
- التبديل التلقائي للبروتوكول في حالة فشل البروتوكول الافتراضي
- بناء جملة URL المعتمد على البروتوكول
- وظيفة الحد من المعدل
- القدرة على تحديد أجزاء URL أو عناوين URL متعددة باستخدام الأقواس (على سبيل المثال، https://google.{one, two, three}.com)
- خيار لتحديد أي عدد من عناوين URL من خلال سطر الأوامر
علاوة على ذلك، يقدر المطورون التحقق من شهادة SSL الافتراضية ودعم HTTPS لـ cURL. عندما يتصل cURL بخادم عبر HTTPS، فإنه يحصل على شهادة الخادم ويقارنها بشهادة CA، مما يضمن مصادقة الخادم البعيد.
كيفية تثبيت cURL
دعنا نستكشف كيفية تثبيت cURL على جهاز الكمبيوتر الخاص بك.
ماك
ليست هناك حاجة لتثبيت cURL على نظام التشغيل macOS، لأنه مدمج بالفعل في نظام التشغيل. يمكنك استخدامه أصلاً في تطبيق Terminal.
شبابيك
بدءًا من نظام التشغيل Windows 10، يتضمن نظام التشغيل نسخة من cURL. ومع ذلك، يعمل الأمر cURL كاسم مستعار لـ PowerShell استدعاء WebRequest يأمر. ونتيجة لذلك، فإن تنفيذ أوامر cURL في محطة Windows سيؤدي إلى بدء طلب الاستدعاء خلف الكواليس. لاستخدام cURL بدلاً من ذلك، استبدل 'curl' بـ 'curl.exe'، وسيقوم PowerShell بتشغيل cURL بدلاً من طلب الاستدعاء.
على سبيل المثال، للتحقق من الإصدار الحالي من 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، وكيفية تشغيله على النوافذ، وكيفية تشغيل طلبات واجهة برمجة التطبيقات (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. إذا لم تكن قد فكرت في الأمر بعد، فيجب عليك ذلك. ابق مجعدًا (يقصد التورية).