Vinted est un site d'achat et de vente de vêtements d'occasion disponible dans plusieurs pays d'Europe. Il est parfois utile de télécharger les photographies d'un article.
Au moment de la rédaction (14 octobre 2023), supprimer des informations du site Web de Vinted est assez simple. Vous pouvez trouver tous les détails ci-dessous. Vous pouvez télécharger toutes les photographies avec un petit script bash, sans même avoir besoin de python.
Mais si vous voulez plus d'informations (pas seulement les photographies) ou si vous ne savez pas comment diriger les commandes sur la ligne de commande, voici un script python qui :
téléchargez et extrayez les détails d'un produit Vinted. Ce json contient toutes les informations disponibles sur le produit, l'utilisateur, les photographies, etc.
téléchargez toutes les photographies du produit en pleine résolution
téléchargez la photo de profil du vendeur (avec l'option --seller
)
Cela fonctionne comme ceci :
python3 vinted_downloader.py "PRODUCT_URL"# ou, pour télécharger également le profil vendeur :python3 vinted_downloader.py --seller "PRODUCT_URL"# ou, pour télécharger également tous les articles disponibles sur le profil vendeur :python3 vinted_downloader.py --all "PRODUCT_URL" "
Ensuite vous obtenez les fichiers suivants :
item.json
: toutes les informations que vous voulez et que vous ne voulez pas
item_summary
: informations principales (url, titre, description, etc.)
photo_01.jpg
: toutes les photos de l'article
seller.jpg
: avec l'option --seller
Utilisez l'option -o
pour spécifier un répertoire de sortie (la valeur par défaut est le répertoire actuel). S'il n'existe pas, il sera créé. Si vous souhaitez enregistrer les fichiers dans un sous-répertoire du répertoire -o
nommé automatiquement d'après l'identifiant et le titre de l'élément, utilisez l'option --save-in-dir
. Par exemple, pour créer et enregistrer automatiquement dans le répertoire my-output/1234-item-title/
, exécutez :
python3 vinted_downloader.py -o my-output --save-in-dir "https://www.vinted.fr/items/1234-item-title"
Si vous omettez l'option -o
, elle sera enregistrée dans un sous-répertoire du répertoire courant, à savoir ./1234-item-title/
.
Si l'article est vendu, accédez à l'url et redirigerez vers la catégorie, pas vers l'article, sauf si vous êtes connecté. Pour éviter cela, ajoutez ?noredirect=1
à la fin de l'url.
Si vous l'avez installé avec pip
, vous pouvez également utiliser la commande vinted-downloader
:
vinted-downloader "PRODUCT_URL"vinted-downloader --vendeur "PRODUCT_URL"vinted-downloader --all "PRODUCT_URL"
pip
Le téléchargement du produit Vinted se fait sur PyPI, vous pouvez donc exécuter :
pip3 installer vinted-downloader
Toutes les dépendances sont installées automatiquement.
Vous pouvez ensuite utiliser la commande vinted-downloader
comme ceci :
vinted-downloader [--seller] [-o DIR] [--all] "PRODUCT_URL"
ou, si vous préférez utiliser python :
python3 -m vinted_downloader [--seller] [-o DIR] [--all] "PRODUCT_URL"
Pour mettre à jour le package, exécutez :
pip3 install --upgrade vinted-downloader
Vous devez d'abord installer Python :
allez sur https://www.python.org/downloads/
téléchargez le programme d'installation "Python pour Windows"
lancez l'installateur (cliquez sur le fichier téléchargé)
cochez la case "Ajouter python.exe au PATH" (c'est TRÈS IMPORTANT , voir l'image ci-dessous)
cliquez sur "Installer maintenant"
Ouvrez ensuite l'invite de commande (tapez « invite » dans la barre de recherche en bas de l'écran) :
tapez python --version
pour vérifier que Python est correctement installé (vous devriez voir la version de Python, et non un message d'erreur)
tapez pip install vinted-downloader
. Cela installera le téléchargeur et ses dépendances
Ensuite, utilisez-le, comme décrit ci-dessus. Par exemple:
vinted-downloader "PRODUCT_URL"vinted-downloader --vendeur "PRODUCT_URL"vinted-downloader --all "PRODUCT_URL"
Si la commande vinted-downloader
ne fonctionne pas, utilisez :
python -m vinted_downloader "PRODUCT_URL"
Pour mettre à jour, exécutez :
pip install --upgrade vinted-downloader
Clonez le référentiel github et installez les dépendances.
Pour Linux et MacOS :
# clone:git clone https://github.com/boberle/vinted-downloader.git# install deps:cd vinted-downloader python3 -m venv venvsource venv/bin/activate pip install -r exigences.txt# use:python3 vinted_downloader.py "PRODUCT_URL"
Toutes les informations sur l'article se trouvent dans un fichier JSON téléchargé avec le fichier HTML. L'identifiant du produit se trouve dans l'url d'un article : https://www.vinted.TLD/items/ITEM_ID-slug
.
Une fois que vous avez obtenu l'identifiant de l'article, il vous suffit de télécharger le fichier JSON sur https://www.vinted.TLD/api/v2/items/ITEM_ID?localize=false
.
Si vous le téléchargez avec curl, par exemple, vous obtiendrez une erreur « non autorisé ». Il faut d'abord se connecter à une page HTML (par exemple la page d'accueil vinted, avec le même TLD que la page produit) pour récupérer les cookies d'authentification (même s'il s'agit d'une authentification anonyme) puis les réutiliser. C'est pourquoi le script bash ci-dessous utilise 2 commandes curl
.
Les parties intéressantes du JSON sont les suivantes (au format 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"
Mais on peut trouver beaucoup plus d'informations dans le json (le prix, si l'article est réservé, masqué, etc.), vraiment tout ce qui est affiché sur la page, et bien plus encore.
Donc, si vous souhaitez télécharger les photos dans leur taille d'origine en utilisant uniquement un script bash :
url=$1item_id=`echo "$url" | grep -oP "(?<=/)d+(?=-)"`curl -H "Accepter : text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Accepter-Encoding : gzip, deflate, br" -H "Accepter-Langue : fr-FR,fr;q=0.5" -H "Connexion : keep-alive" -H "Sec-Fetch-Dest : document" -H "Sec-Fetch-Mode : naviguer" -H "Sec-Fetch-Site : cross-site" -H "TE : bandes-annonces" -H "Upgrade-Insecure-Requests : 1" -H "User-Agent : Mozilla /5.0 (X11 ; Linux x86_64 ; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie-jar "vinted_cookies.txt" --output vinted_home.out Boucle "https://www.vinted.fr" -H "Accepter : text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Accepter-Encoding : gzip, deflate, br" -H "Accepter-Langue : fr-FR,fr;q=0.5" -H "Connexion : keep-alive" -H "Sec-Fetch-Dest : document" -H "Sec-Fetch-Mode : naviguer" -H "Sec-Fetch-Site : cross-site" -H "TE : bandes-annonces" -H "Upgrade-Insecure-Requests : 1" -H "User-Agent : Mozilla /5.0 (X11 ; Linux x86_64 ; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie "vinted_cookies.txt" --output vinted_item.out "https://www.vinted.fr/api/v2/items/$item_id?localize=false"count=0pour photo_url dans `cat vinted_item.out | gzip -d | jq -r ".item.photos[] | .full_size_url"`do boucle -H "Accepter : text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Accepter-Encodage : gzip, deflate, br" -H "Accepter-Langue : fr-FR,fr;q=0.5" -H "Connexion : conserver la vie" -H "Sec-Fetch-Dest : document" -H "Sec-Fetch-Mode : naviguer" -H "Sec-Fetch-Site : intersites" -H "Demandes de mise à niveau non sécurisées : 1" -H "Agent utilisateur : Mozilla/5.0 (X11 ; Linux x86_64 ; rv:109.0) Gecko/20100101 Firefox/118.0" --sortie "vinted_photo_$count.jpg" $photo_url ((compte++)) || vrai
Enregistrez-le simplement dans un fichier download_full_size_images.sh
et appelez-le avec :
bash -e -x download_full_size_images.sh URL_OF_THE_ITEM
(adaptez le TLD dans le script au TLD de votre article)
Il s'agit de la version 2. Non rétrocompatible avec la version 1.