وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

دانلود فایل ها با پایتون

0 7
زمان لازم برای مطالعه: 4 دقیقه


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

  • اشتراک گذاری فایل
  • داده کاوی
  • بازیابی کد وب سایت (CSS، JS و غیره)
  • رسانه های اجتماعی

اینها تنها تعدادی از برنامه های کاربردی هستند که به ذهنتان می رسد، اما مطمئن هستم که می توانید به بسیاری از برنامه های دیگر فکر کنید. در این مقاله نگاهی خواهیم داشت به برخی از محبوب ترین روش هایی که می توانید فایل ها را با پایتون دانلود کنید.

با استفاده از ماژول urllib.request

این urllib.request ماژول برای باز کردن یا دانلود یک فایل از طریق HTTP استفاده می شود. به طور خاص، urlretrieve روش این ماژول همان چیزی است که ما برای بازیابی واقعی فایل استفاده خواهیم کرد.

برای استفاده از این روش باید دو آرگومان را به آن ارسال کنید urlretrieve روش: آرگومان اول URL منبعی است که می خواهید بازیابی کنید و آرگومان دوم مسیر فایل محلی است که می خواهید فایل دانلود شده را در آن ذخیره کنید.

بیایید به مثال زیر نگاهی بیندازیم:

import urllib.request

print('Beginning file download with urllib2...')

url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg'
urllib.request.urlretrieve(url, '/Users/scott/Downloads/cat.jpg')

در کد بالا ابتدا ما import را urllib.request مدول. بعد یک متغیر ایجاد می کنیم url که حاوی مسیر فایلی است که باید دانلود شود. در نهایت، ما به urlretrieve روش و پاس دادن آن url متغیر به عنوان اولین آرگومان، “/Users/scott/Downloads/cat.jpg” به عنوان پارامتر دوم برای مقصد فایل. به خاطر داشته باشید که شما می توانید هر نام فایلی را به عنوان پارامتر دوم ارسال کنید و آن مکان و نامی است که فایل شما خواهد داشت، با این فرض که مجوزهای صحیح را دارید.

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

اسکریپت بالا را اجرا کنید و به دایرکتوری “Downloads” خود بروید. شما باید فایل دانلود شده خود را با نام “cat.jpg” ببینید.

توجه داشته باشید: این urllib.request.urlretrieve در پایتون 3 یک “رابط قدیمی” در نظر گرفته می شود و ممکن است در آینده منسوخ شود. به همین دلیل، استفاده از آن را به نفع یکی از روش های زیر توصیه نمی کنم. ما آن را به دلیل محبوبیت در پایتون 2 در اینجا گنجانده ایم.

با استفاده از ماژول urllib2

راه دیگر برای دانلود فایل ها در پایتون از طریق ماژول urllib2 است. این urlopen متد ماژول urllib2 یک شی را برمی گرداند که حاوی داده های فایل است. برای خواندن مطالب

توجه داشته باشید که در پایتون 3، urllib2 در ادغام شد urllib مانند urllib.request و urllib.error. بنابراین، این اسکریپت فقط در پایتون 2 کار می کند.

import urllib2

filedata = urllib2.urlopen('http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg')
datatowrite = filedata.read()
 
with open('/Users/scott/Downloads/cat2.jpg', 'wb') as f:
    f.write(datatowrite)

این open متد دو پارامتر را می پذیرد، مسیر فایل محلی و حالتی که داده ها در آن نوشته می شوند. در اینجا “wb” بیان می کند که open متد باید مجوز نوشتن داده های باینری را در فایل داده شده داشته باشد.

اسکریپت بالا را اجرا کنید و به دایرکتوری “Downloads” خود بروید. شما باید سند pdf دانلود شده را به صورت “cat2.jpg” ببینید.

با استفاده از ماژول درخواست

همچنین می توانید فایل ها را با استفاده از درخواست ها مدول. این get روش از requests ماژول برای دانلود محتویات فایل در فرمت باینری استفاده می شود. سپس می توانید از open روش باز کردن یک فایل روی سیستم شما، درست مانند روش قبلی، urllib2.urlopen.

به اسکریپت زیر دقت کنید:

import requests

print('Beginning file download with requests')

url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg'
r = requests.get(url)

with open('/Users/scott/Downloads/cat3.jpg', 'wb') as f:
    f.write(r.content)


print(r.status_code)
print(r.headers('content-type'))
print(r.encoding)

در اسکریپت بالا، open روش یک بار دیگر برای نوشتن داده های باینری در فایل محلی استفاده می شود. اگر اسکریپت بالا را اجرا کنید و به دایرکتوری “Downloads” خود بروید، باید فایل JPG تازه دانلود شده خود را با نام “cat3.jpg” ببینید.

پیشنهاد می‌کنیم بخوانید:  itertools پایتون – count()، cycle() و chain()

با requests ماژول، شما همچنین می توانید به راحتی متا داده های مربوط به درخواست خود، از جمله کد وضعیت، سرصفحه ها و موارد دیگر را بازیابی کنید. در اسکریپت بالا می توانید روش دسترسی ما به برخی از این متا داده ها را مشاهده کنید.

همین امر در مورد پارامترهای اضافی مورد نیاز نیز صدق می کند روی درخواست HTTP GET برای مثال، اگر نیاز به اضافه کردن هدرهای مشتری دارید، تنها کاری که باید انجام دهید این است که a dict با هدرهای خود و ارسال آن به شما get درخواست:

headers = {'user-agent': 'test-app/0.0.1'}
r = requests.get(url, headers=headers)

وجود دارد تن گزینه ها و ویژگی های بیشتری برای این کتابخانه وجود دارد، بنابراین عالی بودن آنها را بررسی کنید راهنمای کاربر برای اطلاعات بیشتر روی روش استفاده از آن

با استفاده از ماژول wget

یکی از ساده‌ترین راه‌ها برای دانلود فایل‌ها در پایتون، از طریق آن است wget ماژول، که نیازی به باز کردن فایل مقصد ندارد. این download روش از wget ماژول فایل ها را فقط در یک خط دانلود می کند. این روش دو پارامتر را می پذیرد: مسیر URL فایل برای دانلود و مسیر محلی که فایل باید در آن ذخیره شود.

import wget

print('Beginning file download with wget module')

url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg'
wget.download(url, '/Users/scott/Downloads/cat4.jpg')

اسکریپت بالا را اجرا کنید و به دایرکتوری “Downloads” خود بروید. در اینجا باید فایل «cat4.jpg» را که به تازگی دانلود کرده اید ببینید.

نتیجه

در این مقاله چهار مورد از متداول‌ترین روش‌ها برای دانلود فایل‌ها در پایتون را ارائه کردیم. من شخصا ترجیح می دهم از آن استفاده کنم request ماژول دانلود فایل به دلیل ترکیبی از سادگی و قدرت. با این حال، پروژه شما ممکن است دارای محدودیت هایی باشد که شما را از استفاده از کتابخانه های شخص ثالث باز می دارد، در این صورت من از urllib2 ماژول (برای پایتون 2) یا urllib.request ماژول (برای پایتون 3).

کدام کتابخانه را ترجیح می دهید و چرا؟ در نظرات به ما اطلاع دهید!

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-29 10:19:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

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

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید