كيفية تنزيل منشورات Instagram باستخدام Python


قد تجد صعوبة في تنزيل صور او فيديوهات او غيرها من على Instagram. في هذا الموضوع المختصر سنرى كيفية استعمال مكتبة بايثون instaloader لاتمام ذلك.
Instaloader هي أداة لتنزيل الصور (أو مقاطع الفيديو) مع تسمياتها التوضيحية والبيانات الوصفية الأخرى من Instagram.
تثبيت المكتبة
اولا نبدأ بتثبيت المكتبة, الشيئ المطلوب قبل ذلك هو ان يكون Python مثبت من قبل.
للتثبيت نقوم بالامر التالي:
$ pip3 install instaloader
Instaloader
- يقوم بتنزيل صور البروفايلات و هاشتاغات و ايضا stories و غيرها.
- يقوم بتنزيل تعليقات و العلامات الجغرافية لكل منشور.
- يسمح بالتخصيص الدقيق للفلاتر ومكان تخزين الوسائط التي تم تنزيلها.
- يستأنف تلقائيًا التنزيلات التي تمت مقاطعتها مسبقًا.
- هو برنامج مجاني مفتوح المصدر مكتوب بلغة بايثون.
instaloader [--comments] [--geotags]
[--stories] [--highlights] [--tagged] [--igtv]
[--login YOUR-USERNAME] [--fast-update]
profile | "#hashtag" | %location_id |
:stories | :feed | :saved
الاستخدام الأساسي
لتنزيل جميع الصور ومقاطع الفيديو الخاصة ببروفايل معين، بالإضافة إلى الصورة الشخصية و ذلك فقط من موجه الاوامر. نقوم بـ:
$ instaloader profile [profile ...]
نستبدل profile باسم الحساب المراد تنزيل منه, مثال:
$ instaloader al_matten
Stored ID 40763491231 for profile al_matten.
Hint: Use --login to download higher-quality versions of pictures.
[1/1] Downloading profile al_matten
al_matten\2021-09-01_14-36-28_UTC_profile_pic.jpg
Retrieving posts from profile al_matten.
[ 1/178] al_matten\2021-09-06_13-59-13_UTC.jpg [. . . . . . #عمل_حر #تجارة #…] json
[ 2/178] al_matten\2021-09-05_15-19-22_UTC.jpg [#عمل_حر #تجارة #استثمار #تداو…] json
[ 3/178] al_matten\2021-09-04_17-01-02_UTC_1.jpg
al_matten\2021-09-04_17-01-02_UTC_3.jpg
al_matten\2021-09-04_17-01-02_UTC_5.jpg
al_matten\2021-09-04_17-01-02_UTC_7.jpg
...
...
...
يمكننا ايضا تحميل عدة بروفايلات مع بعض و ذلك باضافة اسمائها كما في المثال:
$ instaloader al_matten profile
Downloading 2 profiles: al_matten profile
Hint: Use --login to download higher-quality versions of pictures.
[1/2] Downloading profile almatten
...
...
...
سوف تجد ان تم انشاء مجلد باسم البروفايل بداخله كل الصور و الفيديوهات.
لتحميل البروفايلات الشخصية يمكنك تسجيل الدخول و طلك بالخيار --login مع حسابك (al_matten كما في المثال) ثم الحساب المراد تنزيله (كما في المثال profile) كما في المثال:
$ instaloader --login=al_matten profile
Session file does not exist yet - Logging in.
Enter Instagram password for al_matten:
تنزيل منشور
لتنزيل منشور معين نقوم يتعيين كود المنشور المختصر.
مثال نريد تنزيل هذا المنشور https://www.instagram.com/p/CTSLTLLImad ناخذ فقط الجزء CTSLTLLImad
$ instaloader -- -CTcdmneKXUW
-CTcdmneKXUW\2021-09-05_15-19-22_UTC.jpg [#عمل_حر #تجارة #استثمار #تداو…] json
هكذا لقد تم تنزيل المنشور.
نستعمل نفس الطريقة اذا كان فيديو او IGTV.
$ instaloader -- -CHdV4fgpCl2
-CHdV4fgpCl2\2020-11-11_17-34-21_UTC.jpg [تحميل فيديو من اليوتيوب باستع…]
-CHdV4fgpCl2\2020-11-11_17-34-21_UTC.mp4 json
وحدات بايثون | Python Modules
اذا اردنا تنزيل منشورات معية التي قد يلزمنا تسجيل الدخول لتنزيلها يمكننا تسجيل الدخول لحسابنا و ذلك بالطرق التالية:
تسجيل الدخول:
import instaloader
# Get instance
L = instaloader.Instaloader()
# هو اسم حسابك المراد تسجل الدخول اليه USER
L.login(USER, PASSWORD) # (تسجيل الدخول)
طلب كلمة سر الحساب على موجه الاوامر:
import instaloader
# Get instance
L = instaloader.Instaloader()
# هو اسم حسابك المراد تسجل الدخول اليه USER
L.interactive_login(USER) # (طلب كلمة المرور على موجه الاوامر (Terminal))
تحميل session التي قد تم انشائها بالامر `instaloader -l USERNAME`:
import instaloader
# Get instance
L = instaloader.Instaloader()
L.load_session_from_file(USER) # (session تحميل
# التي قد تم انشائها بالامر
# `instaloader -l USERNAME`)
لكتابة كود بايثون يقوم بتنزيل منشور معين نقوم باستعمال طرق (methods) توفرها لنا instaloader.
import instaloader
# Get instance
L = instaloader.Instaloader()
post_shortcode = str(input("أدخل الرابط المختصر للمنشور: "))
post = instaloader.Post.from_shortcode(L.context, post_shortcode)
# #almatten اسم المجلد هو
L.download_post(post, target='#al_matten')
عند تنفيذ الكود نحصل على النتيجة التالية:
$ py insta.py
أدخل الرابط المختصر للمنشور: CTcdmneKXUW
#al_matten\2021-09-05_15-19-22_UTC.jpg [#عمل_حر #تجارة #استثمار #تداو…] json
كما نلاحض انه تم انشاء مجلد باسم #al_matten و في داخله تم تنزيل المنشور الذي هو عبارة عن صورة و ايضا العلامات Tags.
لكتابة بايثون سكريبت يقوم بتحميل جميع منشورات حساب معين (Public) نقوم بالتالي:
import instaloader
# Get instance
L = instaloader.Instaloader()
USERNAME = "al_matten"
profile = instaloader.Profile.from_username(L.context, USERNAME)
for post in profile.get_posts():
L.download_post(post, target=profile.username)
نتحصل على شيئ مماثل:
$ py insta.py
al_matten\2021-09-08_11-57-50_UTC_1.jpg
al_matten\2021-09-08_11-57-50_UTC_2.jpg
al_matten\2021-09-08_11-57-50_UTC_3.jpg
al_matten\2021-09-08_11-57-50_UTC_4.jpg
al_matten\2021-09-08_11-57-50_UTC_5.jpg
al_matten\2021-09-08_11-57-50_UTC_7.jpg
al_matten\2021-09-08_11-57-50_UTC_9.jpg
al_matten\2021-09-07_14-01-03_UTC.jpg [. . . . . #برمجة #مبرمج #مبر…] json
al_matten\2021-09-06_13-59-13_UTC.jpg [. . . . . . #عمل_حر #تجارة #…] json
هناك المزيد من الخيارات و الاستعالات الاخرى التي توفرها Instaloader.
في الاخيراتمنا انّ الموضوع قد كان مفيدا. لا تنسى زيارة موضوعنا حول كيفية تحميل مقاطع فيديو YouTube بلغة Python.
تذكر أن المساهمات في هذا الموضوع يجب أن تتبع إرشادات المجتمع.
لا توجد تعليقات بعد.