التابع URLopener.retrieve()
في بايثون
يجلب التابع محتويات عنوان URL المعطى ويضعها في الملف المعطى.
البنية العامة
URLopener.retrieve(url, filename=None, reporthook=None, data=None)
المعاملات
reporthook
معامل اختياري، يجب أن يكون دالة تستقبل ثلاثة معاملات عددية هي: عدد قطعة البيانات chunk، أقصى حجم لقطع البيانات، والحجم الكلي لعملية التحميل (-1 إن كان الحجم مجهولًا). تستدعى هذه الدالة مرة واحدة عند بدء عملية قراءة قطعة البيانات وبعد قراءة كلّ قطعة بيانات من الشبكة. يتجاهل التابع المعامل reporthook
عند استخدام عناوين URL محلية.
data
إن استخدم المعامل url
المخطط http:
فيمكن حينئذٍ إعطاء قيمة للوسيط الاختياري data
لجعل الطلب من نوع POST (يكون الطلب من نوع GET عادةً). يجب أن تكون قيمة الوسيط data
كائن بايتات بالصيغة القياسية application/x-www-form-urlencoded
. راجع الدالة urllib.parse.urlencode()
.
القيمة المعادة
تكون القيمة المعادة صفًّا يتضمّن اسم الملف المحلي وإما كائن email.message.Message
يتضمّن ترويسة الاستجابة (لعناوين URL البعيدة) أو None
(لعناوين URL المحلية). يجب أن يفتح المستدعي بعدها ذلك الملف ويقرأ محتويات. إن لم يزوّد التابع باسم ملف وكان عنوان URL يشير إلى ملف محلّي، فإن التابع سيعيد الملف المعطى.
إن كان عنوان URL غير محلّي ولم يزوّد التابع بقيمة للمعامل filename
، فإنّ اسم الملف سيكون مخرجات الدالة tempfile.mktemp()
مع لاحقة تطابق لاحقة آخر مكوّن مسار في عنوان URL المدخل.
انظر أيضًا
- الدالة URLopener.open(): يفتح التابع عنوان URL الكامل المعطى باستخدام البروتوكول المناسب.