نحوه ارسال درخواست های GET با cURL

این وبلاگ در ابتدا به وبلاگ Crawbase ارسال شد
cURL یکی از پرکاربردترین ابزارهای خط فرمان برای انتقال داده از طریق اینترنت است. این پروتکل از بسیاری از پروتکل ها، از جمله HTTP و HTTPS پشتیبانی می کند، و برای خراش دادن وب، آزمایش API ها و اشکال زدایی اتصالات شبکه استفاده می شود. چه نیاز به واکشی داده ها از یک وب سایت عمومی داشته باشید یا با یک API تعامل داشته باشید، cURL راه حل است.
این پست شما را در ارسال درخواست های GET با cURL راهنمایی می کند. ما آن را با نمونههایی از سناریوهای معمولی مانند ارسال پارامترها، هدرها و پاسخهای JSON به مراحل ساده تقسیم میکنیم.
درخواست GET چیست؟
درخواست GET ساده ترین و پرکاربردترین روش HTTP برای بازیابی اطلاعات از سرور است. هنگامی که URL را در مرورگر خود تایپ می کنید و اینتر را فشار می دهید، مرورگر شما یک درخواست GET را به سرور میزبان وب سایت ارسال می کند. سرور با ارسال دادههای درخواستی مانند محتوای HTML، تصاویر یا دادههای JSON پاسخ میدهد و مرورگر شما آن را نمایش میدهد.
برخلاف سایر روشهای HTTP مانند POST که دادهها را به سرور ارسال میکند، درخواستهای GET فقط برای واکشی منابع هستند. این باعث می شود درخواست های GET برای موارد زیر عالی باشد:
- بازیابی صفحات وب
- دسترسی به نقاط انتهایی API برای دریافت داده.
- واکشی منابع ثابت مانند تصاویر یا شیوه نامه.
در اینجا یک مثال ساده از درخواست GET با استفاده از cURL آورده شده است:
curl https://crawlbase.com
این دستور HTML صفحه وب مشخص شده را بازیابی می کند و در ترمینال شما نمایش می دهد.
ارسال یک درخواست GET ساده با cURL
درخواست GET با cURL ساده ترین راه برای دریافت داده از سرور است. cURL پیشفرض GET است، بنابراین نیازی به تعیین آن ندارید.
در اینجا نحوه ارائه یک درخواست اولیه GET آورده شده است:
curl http://httpbin.org/get
این محتوا را از https://example.com
. سرور با منبع، معمولاً HTML یا سایر داده ها، که در ترمینال شما نمایش داده می شود، پاسخ می دهد.
برای ذخیره خروجی در فایل به جای چاپ در ترمینال از -o
گزینه:
curl -o output.html https://example.com
نکات کلیدی:
- استفاده کنید
curl
به دنبال آن URL برای ایجاد یک درخواست اولیه GET. - را اضافه کنید
-o
برای ذخیره پاسخ به یک فایل پرچم گذاری کنید.
این نقطه شروع شما برای دریافت داده از وب سایت ها یا API ها است. اکنون به نحوه ارسال درخواست های GET با پارامترها خواهیم پرداخت.
دریافت درخواست با پارامترها
گاهی اوقات لازم است پارامترهایی را در درخواست GET خود ارسال کنید تا داده های بیشتری به سرور بدهید. دو روش برای انتقال پارامترها وجود دارد:
با استفاده از -G
و -d
گزینه ها
گزینه -G به شما امکان ارسال داده با درخواست GET را می دهد و گزینه -d پارامترها را مشخص می کند. در اینجا یک مثال است:
curl -G -d "param1=value1" -d "param2=value2" http://httpbin.org/get
در این مورد، param1=value1
و param2=value2
پارامترهایی هستند که به عنوان رشته های پرس و جو به سرور ارسال می شوند.
افزودن پارامترها به URL
همچنین می توانید پارامترها را مستقیماً به URL اضافه کنید. در اینجا نحوه انجام آن آمده است:
curl 'http://httpbin.org/get?param1=value1¶m2=value2'
در این مورد پارامترها param1
و param2
بعد از این به URL اضافه می شوند ?
و جدا شده توسط &
.
هر دو روش پارامترها را پردازش کرده و داده ها را برمی گرداند. انتخاب به عهده شماست اما هر دو نتیجه یکسانی خواهند داشت.
بازیابی هدرهای HTTP با درخواست های GET
هنگامی که یک GET با cURL انجام می دهید، می توانید هدرهای HTTP را به همراه بدنه پاسخ نیز دریافت کنید. هدرهای HTTP برای دانستن پاسخ، نوع سرور، نوع محتوا و موارد دیگر بسیار مفید هستند.
برای گنجاندن هدرهای HTTP در پاسخ، از -i
یا --include
گزینه:
curl -i http://httpbin.org/headers
این دستور هم بدنه پاسخ و هم هدرهای HTTP را برمی گرداند. متناوباً، اگر فقط هدرها را بدون بدنه میخواهید، از آن استفاده کنید --head
گزینه:
curl --head http://httpbin.org/headers
این زمانی مفید است که شما فقط به ابرداده در مورد درخواست نیاز دارید و نه محتوای واقعی.
واکشی داده های JSON با استفاده از cURL
برای واکشی دادههای JSON از سرور با cURL، میتوانید به cURL بگویید که پاسخ را در JSON میخواهید. این در هنگام برخورد با API هایی که داده ها را در JSON برمی گرداند مفید است.
برای درخواست داده های JSON از -H
گزینه تنظیم Accept
سربرگ به application/json
:
curl -H "Accept: application/json" http://httpbin.org/get
این به سرور می گوید که انتظار پاسخ را در قالب JSON دارید. اگر سرور از آن پشتیبانی کند، پاسخی در JSON دریافت خواهید کرد که می توانید از آن برای پردازش بیشتر استفاده کنید.
مدیریت تغییر مسیرها در درخواستهای cURL GET
هنگام درخواست GET با cURL، سرور ممکن است یک تغییر مسیر را به URL دیگری برگرداند. cURL به طور پیش فرض از تغییر مسیرها پیروی نمی کند. برای دنبال کردن تغییر مسیر، از -L
یا --location option
.
در اینجا نحوه استفاده از آن آمده است:
curl -L http://httpbin.org/redirect-to?url=http://httpbin.org/get
این تغییر مسیر را دنبال می کند و محتوا را از URL جدید واکشی می کند. هنگام کار با وبسایتها یا APIهایی که ریدایرکت ارسال میکنند (301 یا 302 کد وضعیت) مفید است.
ارسال کوکی ها با درخواست GET
برخی از وبسایتها از شما میخواهند که کوکیهایی را همراه با درخواست GET خود برای حفظ جلسات یا پیگیری فعالیت کاربر ارسال کنید. شما می توانید کوکی ها را با استفاده از -b
یا --cookie
گزینه در cURL.
در اینجا نحوه ارسال کوکی ها با درخواست GET آمده است:
curl -b "username=JohnDoe; sessionId=12345" http://httpbin.org/cookies
در این مثال، کوکی ها username
و sessionId
همراه با درخواست GET ارسال می شوند. همچنین میتوانید کوکیهایی را از یک فایل تهیه کنید:
curl -b cookies.txt http://httpbin.org/cookies
این به شما امکان می دهد با وب سایت هایی که به جلسات کاربر، ورود به سیستم یا سایر داده های مبتنی بر کوکی نیاز دارند تعامل داشته باشید.
cURL GET بررسی اجمالی گزینه های درخواست
در اینجا چند گزینه کلیدی cURL وجود دارد که می توانید با درخواست های GET از آنها استفاده کنید:
این جدول گزینه های کلیدی cURL را خلاصه می کند که به شما امکان می دهد درخواست های GET را مطابق با نیازهای خود سفارشی کنید.
افکار نهایی
cURL یک ابزار عالی برای ارسال درخواست های GET و دریافت داده از سرورهای وب است. می توانید محتوای وب را واکشی کنید، پارامترها را مدیریت کنید، کوکی ها را مدیریت کنید، تغییر مسیرها را دنبال کنید و با API ها کار کنید. چه در حال جمعآوری دادهها یا خودکارسازی وظایف، cURL آن را آسان و انعطافپذیر میکند.
پس از تسلط بر درخواستها و گزینههای cURL GET، میتوانید با منابع وب تعامل داشته باشید و دادههای مورد نیاز خود را دریافت کنید. با تمرین میتوانید از cURL برای تمام پروژههای خراشدهی و اتوماسیون وب خود استفاده کنید، این یک ابزار ضروری در جعبه ابزار شما است.
سوالات متداول
س. درخواست cURL GET چیست؟
درخواست cURL GET برای دریافت داده از یک سرور استفاده می شود. یک درخواست HTTP را به URL مشخص شده ارسال می کند و پاسخ سرور را دریافت می کند که می تواند یک صفحه وب، داده JSON یا هر منبع دیگری باشد. این برای اسکرپینگ وب، تعامل API و آزمایش منابع وب استفاده می شود.
س. چگونه پارامترها را با درخواست GET در cURL ارسال کنم؟
شما می توانید پارامترها را در یک درخواست GET با ضمیمه کردن آنها به URL یا استفاده از آن ارسال کنید -G
و -d
گزینه ها
- مثال با پارامترها در URL:
curl 'http://example.com/data?param1=value1¶m2=value2'
- مثال با
-G
و-d
:
curl -G -d "param1=value1" -d "param2=value2" http://example.com/data
س. آیا می توانم داده های JSON را با استفاده از cURL بازیابی کنم؟
بله، میتوانید دادههای JSON را با تنظیم کردن واکشی کنید Accept: application/json
هدر در درخواست cURL شما.
مثال:curl -H "Accept: application/json" http://example.com/data
این به سرور میگوید در صورت پشتیبانی، دادهها را با فرمت JSON برگرداند.