دانلود فایل در پایتون |آموزش کامل نوشتن برنامه ای برای دانلود فایل به زبان پایتون

پایتون مارکت : یکی از نیازهایی که در برنامه ها و نرم افزارهای کاربردی وجود دارد امکان دانلود فایل می باشد. حال این دانلود ممکن است یک فایل درون خود نرم افزار باشد یا اینکه یک فایل در یک سایت دیگر باشد. در ادامه با آموزش دانلود فایل در پایتون با ما همراه باشید. در این مقاله به شما آموزش میدهیم که چطور در برنامه پایتون خود یک فایل را از اینترنت دانلود کنید.

دانلود فایل در پایتون

پایتون مارکت ، فروشگاه پایتون

 

در این نوشته قصد داریم برنامه ای بنویسیم که با آن بتوانیم یک فایل را از یک آدرس سایت خاص دانلود کنیم. و دانلود در پایتون را بصورت گام به گام آموزش دهیم

دانلود فایل در پایتون

 

پیش نیاز ها :

برای نوشتن برنامه دانلود فایل در پایتون نیاز دارید که کتابخانه requests و یا کتابخانه urllib2 را به پایتون خود اضافه کنید .

اگر که در حال حاضر هیج کدام از این دو کتابخانه را روی سیستم خود نصب ندارید ، لازم هست تا یکی از این دو کتابخانه را نصب کنید.

چنانچه با نحوه نصب کتابخانه در پایتون آشنایی ندارید به “آموزش نصب کتابخانه در پایتون” مراجعه کنید.

 

  • برای نصب کتابخانه requests با استفاده از pip میتوانید از دستور زیر استفاده کنید:

کتابخانه ریکوئست یا requests یک کتابخانه پرکاربرد در پایتون است و اگر شما برنامه نویس پایتون باشید قطعا با ریکوئست کار کرده اید. از طریق این کتابخانه Request میتونید درخواست های HTTP1.1 ارسال کنید و جواب آن را دریافت کنید.

  • برای نصب کتابخانه urllib2 با  استفاده از pip میتوانید از دستور زیر استفاده کنید:
  • کتابخانه urllib یکی از بخش های کتابخانه استاندارد پایتون است و نیاز نیست شما جداگانه آن را نصب کنید بلکه با نصب پایتون urllib هم نصب شده است.

 

خب من آموزش رو دو بخش میکنم تا کار با هر دو کتابخانه را به شما عزیزان آموزش دهم

بخش اول : آموزش برنامه دانلود فایل در پایتون با کتابخانه Requests

بعد از نصب کتابخانه Request نیاز هست تا این کتابخانه را به برنامه خودمان وارد کنیم که برای این کار از دستور import استفاده میکنیم:

کتابخانه Request میتواند درخواستهایی از نوع Get، Post یا Put و Delete را اجرا کند. هر کدام از این درخواست ها عملکرد خاص خود را دارند.

ما برای دانلود فایل از درخواست Get استفاده میکنیم.

نحوه کار با درخواست GET به صورت زیر می باشد:

نام کتابخانه و بعد نام درخواست را نوشته ایم یعنی requests.get و بعد هم آدرس فایلی که میخواهیم دانلود شود را داخل پرانتز بعنوان پارامتر برای دستور GET ارسال کرده ایم.

در نتیجه فایل مورد نظر ما خوانده میشود و نتیجه این دستور در متغیر page   قرار داده میشود.

خب به همین راحتی.

حالا درون متغیر page چه چیزی قرار دارد ؟ با تکه کد زیر معلوم میشود که شی ای از نوع Response داخل متغیر page قرار گرفته است.

 

فایلی که آدرس آن را در کد بالا نوشتیم در متغیر page قرار گرفته است.

حالا از کجا بفهمیم کد بالا درست عمل کرده یا نه؟ میتوانیم وضعیت درخواست را چک کنیم اگر کد وضعیت درخواست مساوی 200 باشد یعنی که عملیات خواند فایل مورد نظر ما با موفقیت انجام شده است و اگر 404 باشد یعنی که خطایی رخ داده است.

خب پس با دستور print و چاپ کردن کد وضعیت میتوانیم بفهمیم برنامه ما موفق به خواندن فایل ما شده است یا خیر :

با این کار دستور پرینت خروجی ای مشابه زیر میدهد:

آموزش نوشتن برنامه پایتون برای دانلود فایل

 

برای اینکه ببینیم درخواست ما با موفقیت انجام شد یا نه، req را نمایش می‌دهیم که عدد ۲۰۰ نشان دهنده‌ی موفق بودن درخواست است. عدد ۴۰۴ هم نشان‌دهنده‌ی پیدا نشدن این درخواست است.

حالا ویژگی های زیادی از فایل مورد نظر را میتوانیم چک کنیم که در ادامه چند مورد را بررسی میکنیم:

  • ویژگی encoding : فرمت انکدینگ فایل را مشخص میکند.
  • ویژگی status-code : کد وضعیت را مشخص میکند که گفتیم 200 یا 404 میتواند باشد.
  • ویژگی content : محتوی فایل که آدرس آن را داده بودیم مشخص میکند به این شکل که محتوی را بصورت string برمی گرداند
  • ویژگی text : محتوی فایل را مشخص میکند به این شکل که محتوی را بصورت unicode برمی گرداند

 

برای دیدن نوع encoding درخواست از مشخصه encoding استفاده می‎‌کنیم.

برای دسترسی به source code صفحه درخواست هم از مشخصه text استفاده می‌کنیم:

 

حالا اگه توضیحاتی که در بالا گفتم را خلاصه کنم ما تا الان آدرس یک فایل را به برنامه مان داده ایم و برنامه ما آن فایل را خوانده است و در متغیر page قرار داده است و کد ما تا اینجای کار به شکل زیر هست:

 

حالا زمان ان رسیده است که فایل را دانلود کنیم. برای دانلود فایل از کد زیر استفاده میکنیم:

در کد بالا ما میخواهیم لوگوی پایتون را دانلود کنیم پس آدرس آن را به متد get از کتابخانه requests داده ایم .

حالا محتوا یا content را خوانده ایم و در متغیر file قرار داده ایم . پس الان عکس لوگوی پایتون در متغیر file است حالا کافیه اون رو دانلود کنیم یعنی روی سیستم خودمون ذخیره کنیم.

با دستور with یک فایل می سازیم که در متد open نام فایل را logo.png قرار داده ایم و با فراخوانی متد write محتوی متغیر file را در فایل logo.png نوشته ایم.

 

تمام شد.

شما کافیه کد فوق را در پایتون خودتون بنویسید و بعد برنامه را ذخیره و اجرا کنید. عکس لوگوی پایتون دانلود شده و در همان پوشه برنامه شما قرار میگیرد.

راستی تا یادم نرفته نکته های زیر رو هم مد نظر داشته باشید:

  • برای عدم مشکل در انواع کاراکتر ها (اگه فایلتون متنی باشه ) حتما از content استفاده کنید و از text استفاده نکنید.
  • با استفاده از ساختار with و open میتونیم فایل رو به نحوی باز کنیم که بعد از اتمام کار فایل بسته بشود و نیاز به بستن دستی نداشته باشد.
  • مُد استفاده شده ” wb ” به معنی این هست که فایل رو برای نوشتن به صورت باینری باز کردیم.
  • برای دانلود هر نوع فایلی (pdf , mp3,mp4, …) کافیه هنگام باز کردن فایل ، فایل با پسوند مناسب باز کنید.

 

بخش دوم: آموزش برنامه دانلود فایل در پایتون با کتابخانه Urllib

دانلود فایل با کتابخانه Urllib در پایتون : همانطور که در ابتدای بحث گفتم کتابخانه Urllib نیاز به نصب مجزا ندارد و با نصب پایتون نصب شده است.

 

urllib.request : برای باز کردن و خواندن URL ها استفاده می‌شود.
urllib.error : برای مدیریت کردن خطاهایی است که توسط urllib.request بوجود آمده‌اند.
ماژول urllib.request رابطی بسیار ساده برای ایجاد درخواست‌ها بوجود می‌آورد و هم‌چنین برای مدیریت‌کردن احراز هویت‌ گزینه‌های بیشتری در اختیار برنامه نویس قرار می‎دهد.

 

خب برای اینکه یک فایل را در پایتون بخوانیم با کتابخانه urllib باید از متد urlretrieve که در کلاس request این کتابخانه قرار دارد استفاده کنیم .

متد urlretrieve  دو پارامتر ورودی دارد

  • پارامتر اول : آدرس فایلی که میخواهیم آن را دانلود کنیم
  • پارامتر دوم : نام فایل که با این نام فایل را روی سیستم ما ذخیره کند.

خب من معادل کدی که برای دانلود لوگوی پایتون با کتابخانه Requests در بالا نوشتیم را میخوام با کتابخانه UrlLib بنویسم:

تموم شد.

به همین راحتی . به همین خوشمزگی

 

در ادامه دانلود انواع فایل های مختلف با پایتون را برای شما مثال زده ایم

مثال برای دانلود pdf در برنامه پایتون

برای دانلود فایل های پی دی اف با پایتون میتوانیم از هر دو کتابخانه فوق استفاده کنیم . من با هر دو کتابخانه مثال میزنم که کامل آشنا بشوید:

کد دانلود فایل pdf با کتابخانه Request در پایتون:

کد دانلود فایل pdf با کتابخانه Urllib در پایتون:

 

مثال برای دانلود فایل zip در برنامه پایتون

کد دانلود فایل zip با پایتون با کتابخانه Resuest:

 

کد دانلود فایل zip با پایتون با کتابخانه Urllib:

 

مثال برای دانلود عکس در برنامه پایتون

کد دانلود عکس با پایتون با کتابخانه Resuest:

 

کد دانلود عکس با پایتون با کتابخانه Urllib:

 

مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.