اذهب إلى المحتوى
  • 0

كيف أستطيع تنزيل ملف عن طريق البايثون؟

TheProgrammer

السؤال

Recommended Posts

  • 0

في الحقيقة توجد العديد من الطرق لتنزيل الملفات من شبكة الأنترنت، فلو كنت تستخدم البايثون 2 فيمكنك استخدام مكتبة urllib2 التي تأتي بشكل افتراضي مع المكتبات القياسية، وهذا مثال بسيط على استخدامها:

import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()

ملاحظة: هذه الطريقة لن تعمل في حالة كان هنالك فراغات في الرابط، ولقد تم حل هذه المشكلة في البايثون 3.
كما يمكنك استخدام urlretrieve من مكتبة urllib كما في الشكل التالي:

import urllib
urllib.urlretrieve ("http://www.example.com/files/mp3.mp3", "mp3.mp3")

ويمكنك أيضا إنشاء تطبيق بسيط لتحميل الملفات مع شريط التقدم الذي يقوم بحساب نسبة اكتمال تحميل الملف كما في المثال التالي:

import urllib2

url = "http://download.thinkbroadband.com/10MB.zip"

file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)

file_size_dl = 0
block_sz = 8192
while True:
    buffer = u.read(block_sz)
    if not buffer:
        break

    file_size_dl += len(buffer)
    f.write(buffer)
    status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
    status = status + chr(8)*(len(status)+1)
    print status,

f.close()

المصدر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...