Vinted هو موقع لبيع وشراء الملابس المستعملة المتوفرة في عدة دول في أوروبا. في بعض الأحيان يكون من المفيد تنزيل صور لمقال ما.
في وقت كتابة هذا التقرير (14 أكتوبر 2023)، كان حذف المعلومات من موقع Vinted أمرًا سهلاً إلى حد ما. يمكنك العثور على جميع التفاصيل أدناه. يمكنك تنزيل جميع الصور باستخدام نص bash صغير، دون الحاجة إلى لغة python.
ولكن إذا كنت تريد المزيد من المعلومات (ليس فقط الصور الفوتوغرافية) أو لا تعرف كيفية توجيه الأوامر إلى سطر الأوامر، فإليك نص برمجي بلغة بايثون من شأنه أن:
قم بتنزيل واستخراج التفاصيل حول منتج Vinted. يحتوي ملف json هذا على جميع المعلومات المتاحة عن المنتج والمستخدم والصور وما إلى ذلك.
قم بتنزيل جميع صور المنتج بدقة كاملة
تنزيل الصورة الشخصية للبائع (مع خيار --seller
)
انها تعمل مثل هذا:
python3 vinted_downloader.py "PRODUCT_URL"# أو لتنزيل الملف الشخصي للبائع أيضًا:python3 vinted_downloader.py --seller "PRODUCT_URL"# أو لتنزيل جميع العناصر المتوفرة في الملف الشخصي للبائع أيضًا:python3 vinted_downloader.py --all "PRODUCT_URL" "
ثم تحصل على الملفات التالية:
item.json
: جميع المعلومات التي تريدها والتي لا تريدها
item_summary
: المعلومات الرئيسية (عنوان URL، العنوان، الوصف، وما إلى ذلك)
photo_01.jpg
: جميع الصور لهذا البند
seller.jpg
: مع خيار --seller
استخدم الخيار -o
لتحديد دليل الإخراج (الافتراضي هو الدليل الحالي). إذا لم يكن موجودا، سيتم إنشاؤه. إذا كنت تريد حفظ الملفات في دليل فرعي للدليل -o
يتم تسميته تلقائيًا بعد معرف العنصر وعنوانه، فاستخدم خيار --save-in-dir
. على سبيل المثال، للإنشاء والحفظ تلقائيًا في الدليل my-output/1234-item-title/
، قم بتشغيل:
python3 vinted_downloader.py -o my-output --save-in-dir "https://www.vinted.fr/items/1234-item-title"
إذا قمت بحذف الخيار -o
، فسيتم حفظه في دليل فرعي للدليل الحالي، وهو ./1234-item-title/
.
إذا تم بيع العنصر، فإن الانتقال إلى عنوان url سيعيد التوجيه إلى الفئة، وليس العنصر، إلا إذا قمت بتسجيل الدخول. ولتجنب ذلك، أضف ?noredirect=1
في نهاية عنوان url.
إذا قمت بتثبيته باستخدام pip
، فيمكنك أيضًا استخدام الأمر vinted-downloader
:
أداة التنزيل التي تم نسخها "PRODUCT_URL" أداة التنزيل التي تم نسخها -- البائع "PRODUCT_URL" أداة التنزيل التي تم نسخها -- جميع "PRODUCT_URL"
pip
تنزيل منتج Vinted موجود على PyPI، لذا يمكنك تشغيل:
تثبيت pip3-downloader
يتم تثبيت كافة التبعيات تلقائيا.
يمكنك بعد ذلك استخدام الأمر vinted-downloader
مثل هذا:
أداة التنزيل المخلوطة [--البائع] [-o DIR] [--الكل] "PRODUCT_URL"
أو إذا كنت تفضل استخدام بايثون:
python3 -m vinted_downloader [--البائع] [-o DIR] [--الكل] "PRODUCT_URL"
لتحديث الحزمة قم بتشغيل:
تثبيت pip3 - ترقية برنامج التنزيل المخمر
تحتاج أولاً إلى تثبيت بايثون:
انتقل إلى https://www.python.org/downloads/
تنزيل برنامج التثبيت "Python لنظام التشغيل Windows"
قم بتشغيل برنامج التثبيت (انقر فوق الملف الذي تم تنزيله)
حدد المربع "إضافة python.exe إلى PATH" (هذا مهم جدًا ، انظر الصورة أدناه)
انقر على "التثبيت الآن"
ثم افتح موجه الأوامر (اكتب "موجه" في شريط البحث أسفل الشاشة):
اكتب python --version
للتحقق من تثبيت Python بشكل صحيح (يجب أن ترى إصدار Python، وليس رسالة خطأ)
اكتب pip install vinted-downloader
. سيؤدي هذا إلى تثبيت برنامج التنزيل وتبعياته
ثم استخدمه كما هو موضح أعلاه. على سبيل المثال:
أداة التنزيل التي تم نسخها "PRODUCT_URL" أداة التنزيل التي تم نسخها -- البائع "PRODUCT_URL" أداة التنزيل التي تم نسخها -- جميع "PRODUCT_URL"
إذا لم يعمل الأمر vinted-downloader
، فاستخدم:
بايثون -m vinted_downloader "PRODUCT_URL"
للتحديث قم بتشغيل:
تثبيت النقطة - ترقية برنامج التنزيل المخمر
استنساخ مستودع جيثب وتثبيت التبعيات.
لنظام التشغيل Linux وMacOS:
# clone:git clone https://github.com/boberle/vinted-downloader.git# تثبيت deps:cd vinted-downloader python3 -m venv venvsource venv/bin/activate تثبيت النقطة -r المتطلبات.txt# الاستخدام:python3 vinted_downloader.py "PRODUCT_URL"
جميع معلومات العنصر موجودة في ملف JSON الذي تم تنزيله إلى جانب ملف HTML. تم العثور على معرف المنتج في عنوان URL للعنصر: https://www.vinted.TLD/items/ITEM_ID-slug
.
بمجرد حصولك على معرف العنصر، تحتاج فقط إلى تنزيل ملف JSON على https://www.vinted.TLD/api/v2/items/ITEM_ID?localize=false
.
إذا قمت بتنزيله باستخدام برنامج curl، على سبيل المثال، فسوف تحصل على خطأ "غير مصرح به". يتعين عليك الاتصال أولاً بصفحة HTML (على سبيل المثال، الصفحة الرئيسية التي تم تسجيلها، بنفس TLD الخاص بصفحة المنتج) للحصول على ملفات تعريف الارتباط للمصادقة (حتى لو كانت مصادقة مجهولة) ثم إعادة استخدامها. هذا هو السبب في أن البرنامج النصي bash أدناه يستخدم أمرين curl
.
الأجزاء المثيرة للاهتمام في JSON هي الأجزاء التالية (باستخدام تنسيق jq
):
cat itemdetails.json | jq ".item.title" cat itemdetails.json | jq ".item.description" cat itemdetails.json | jq ".item.photos[] | .full_size_url" cat itemdetails.json | jq ".item.user.login" cat itemdetails.json | jq ".item.user.last_logged_on_ts" cat itemdetails.json | jq ".item.user.photo.full_size_url"
ولكن يمكنك العثور على الكثير من المعلومات في ملف json (السعر، إذا كان العنصر محجوزًا، أو مخفيًا، وما إلى ذلك)، وكل ما يتم عرضه على الصفحة، وأكثر من ذلك.
لذلك، إذا كنت تريد تنزيل الصور بالحجم الأصلي باستخدام برنامج bash النصي فقط:
url=$1item_id=`echo "$url" | grep -oP "(?<=/)d+(?=-)"`curl -H "قبول: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "قبول الترميز: gzip, deflate, br" -H "لغة القبول: fr-FR,fr;q=0.5" -H "الاتصال: البقاء على قيد الحياة" -H "Sec-Fetch-Dest: مستند" -H "Sec-Fetch-Mode: التنقل" -H "Sec-Fetch-Site: cross-site" -H "TE: المقطورات" -H "طلبات الترقية غير الآمنة: 1 " -H "وكيل المستخدم: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie-jar "vinted_cookies.txt" --output vinted_home.out "https://www.vinted.fr"curl -H "قبول: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "قبول الترميز: gzip, deflate, br" -H "لغة القبول: fr-FR,fr;q=0.5" -H "الاتصال: البقاء على قيد الحياة" -H "Sec-Fetch-Dest: مستند" -H "Sec-Fetch-Mode: التنقل" -H "Sec-Fetch-Site: cross-site" -H "TE: المقطورات" -H "طلبات الترقية غير الآمنة: 1 " -H "وكيل المستخدم: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --ملف تعريف الارتباط "vinted_cookies.txt" --output vinted_item.out "https://www.vinted.fr/api/v2/items/$item_id?localize=false"count=0for photo_url في `cat vinted_item.out | غزيب -د | jq -r ".item.photos[] | .full_size_url"`do حليقة -H "قبول: نص/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "قبول التشفير: gzip، deflate، br" -H "لغة القبول: fr-FR,fr;q=0.5" -H "الاتصال: البقاء على قيد الحياة" -H "Sec-Fetch-Dest: مستند" -H "وضع الجلب الثاني: التنقل" -H "Sec-Fetch-Site: cross-site" -H "طلبات الترقية غير الآمنة: 1" -H "وكيل المستخدم: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --الإخراج "vinted_photo_$count.jpg" $photo_url ((العدد++)) || com.truedone
ما عليك سوى حفظه في ملف download_full_size_images.sh
واستدعائه باستخدام:
bash -e -x download_full_size_images.sh URL_OF_THE_ITEM
(قم بتكييف TLD في البرنامج النصي مع TLD الخاص بالعنصر الخاص بك)
هذا هو الإصدار 2. غير متوافق مع الإصدار 1.