Vinted es una web para comprar y vender ropa de segunda mano disponible en varios países de Europa. A veces es útil descargar las fotografías de un artículo.
En el momento de escribir este artículo (14 de octubre de 2023), eliminar información del sitio web de Vinted es algo fácil. Puedes encontrar todos los detalles a continuación. Puedes descargar todas las fotografías con un pequeño script bash, sin necesidad siquiera de python.
Pero si quieres más información (no sólo las fotografías) o no sabes cómo canalizar comandos en la línea de comandos, aquí tienes un script en Python que:
Descarga y extrae los detalles sobre un producto Vinted. Este json contiene toda la información disponible del producto, el usuario, las fotografías, etc.
descargar todas las fotografías del producto en máxima resolución
descargar la foto de perfil del vendedor (con la opción --seller
)
Está funcionando así:
python3 vinted_downloader.py "PRODUCT_URL"# o, para descargar también el perfil de vendedor:python3 vinted_downloader.py --seller "PRODUCT_URL"# o, para descargar también todos los artículos disponibles en el perfil de vendedor:python3 vinted_downloader.py --all "PRODUCT_URL "
Luego obtienes los siguientes archivos:
item.json
: toda la información que quieres y no quieres
item_summary
: información principal (url, título, descripción, etc.)
photo_01.jpg
: todas las fotos del artículo.
seller.jpg
: con la opción --seller
Utilice la opción -o
para especificar un directorio de salida (el valor predeterminado es el directorio actual). Si no existe, se creará. Si desea guardar los archivos en un subdirectorio del directorio -o
que lleva el nombre automáticamente de la identificación y el título del elemento, utilice la opción --save-in-dir
. Por ejemplo, para crear y guardar automáticamente en el directorio my-output/1234-item-title/
, ejecute:
python3 vinted_downloader.py -o mi-salida --save-in-dir "https://www.vinted.fr/items/1234-item-title"
Si omite la opción -o
, se guardará en un subdirectorio del directorio actual, es decir, ./1234-item-title/
.
Si el artículo se vende, ir a la URL redirigirá a la categoría, no al artículo, excepto si ha iniciado sesión. Para evitar eso, agregue ?noredirect=1
al final de la URL.
Si lo ha instalado con pip
, también puede utilizar el comando vinted-downloader
:
vinted-downloader "PRODUCT_URL"vinted-downloader --vendedor "PRODUCT_URL"vinted-downloader --todos "PRODUCT_URL"
pip
La descarga del producto Vinted está en PyPI, por lo que puedes ejecutar:
pip3 instalar vinted-downloader
Todas las dependencias se instalan automáticamente.
Luego puedes usar el comando vinted-downloader
de esta manera:
vinted-downloader [--vendedor] [-o DIR] [--todos] "PRODUCT_URL"
o, si prefieres usar Python:
python3 -m vinted_downloader [--seller] [-o DIR] [--all] "PRODUCT_URL"
Para actualizar el paquete, ejecute:
instalación de pip3 --actualizar vinted-downloader
Primero necesitas instalar Python:
vaya a https://www.python.org/downloads/
descargue el instalador "Python para Windows"
ejecute el instalador (haga clic en el archivo descargado)
marque la casilla "Agregar python.exe a la RUTA" (esto es MUY IMPORTANTE , vea la imagen a continuación)
haga clic en "Instalar ahora"
Luego abra el símbolo del sistema (escriba "prompt" en la barra de búsqueda en la parte inferior de la pantalla):
escriba python --version
para verificar que Python esté instalado correctamente (debería ver la versión de Python y no un mensaje de error)
escriba pip install vinted-downloader
. Esto instalará el descargador y sus dependencias.
Luego úselo, como se describe arriba. Por ejemplo:
vinted-downloader "PRODUCT_URL"vinted-downloader --vendedor "PRODUCT_URL"vinted-downloader --todos "PRODUCT_URL"
Si el comando vinted-downloader
no funciona, use:
python -m vinted_downloader "PRODUCT_URL"
Para actualizar, ejecute:
instalación de pip --actualizar vinted-downloader
Clona el repositorio de github e instala las dependencias.
Para Linux y MacOS:
# clon:git clone https://github.com/boberle/vinted-downloader.git# instalación deps:cd vinted-downloader python3 -m venv venvsource venv/bin/activar pip install -r requisitos.txt# uso:python3 vinted_downloader.py "PRODUCT_URL"
Toda la información del artículo está en un archivo JSON descargado junto con el archivo HTML. La identificación del producto se encuentra en la URL de un artículo: https://www.vinted.TLD/items/ITEM_ID-slug
.
Una vez que obtenga la identificación del artículo, solo necesita descargar el archivo JSON en https://www.vinted.TLD/api/v2/items/ITEM_ID?localize=false
.
Si lo descarga con curl, por ejemplo, obtendrá un error "no autorizado". Primero debe conectarse a una página HTML (por ejemplo, la página de inicio de vinted, con el mismo TLD de la página del producto) para obtener las cookies de autenticación (incluso si es una autenticación anónima) y luego reutilizarlas. Es por eso que el siguiente script bash usa 2 comandos curl
.
Las partes interesantes del JSON son las siguientes (usando formato 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"
Pero puedes encontrar mucha más información en el json (el precio, si el artículo está reservado, oculto, etc.), realmente todo lo que se muestra en la página, y aún más.
Entonces, si desea descargar las fotos en el tamaño original usando solo un script bash:
url=$1item_id=`echo "$url" | grep -oP "(?<=/)d+(?=-)"`curl -H "Aceptar: texto/html,aplicación/xhtml+xml,aplicación/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Aceptar-Codificación: gzip, deflate, br" -H "Aceptar-Idioma: fr-FR,fr;q=0.5" -H "Conexión: keep-alive" -H "Sec-Fetch-Dest: documento" -H "Sec-Fetch-Mode: navegar" -H "Sec-Fetch-Site: sitio cruzado" -H "TE: trailers" -H "Upgrade-Insecure-Requests: 1 " -H "Agente de usuario: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie-jar "vinted_cookies.txt" --salida vinted_home.out "https://www.vinted.fr"rizo -H "Aceptar: texto/html,aplicación/xhtml+xml,aplicación/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Aceptar-Codificación: gzip, deflate, br" -H "Aceptar-Idioma: fr-FR,fr;q=0.5" -H "Conexión: keep-alive" -H "Sec-Fetch-Dest: documento" -H "Sec-Fetch-Mode: navegar" -H "Sec-Fetch-Site: sitio cruzado" -H "TE: trailers" -H "Upgrade-Insecure-Requests: 1 " -H "Agente de usuario: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie "vinted_cookies.txt" --salida vinted_item.out "https://www.vinted.fr/api/v2/items/$item_id?localize=false"count=0para photo_url en `cat vinted_item.out | gzip-d | jq -r ".item.fotos[] | .full_size_url"`do rizo -H "Aceptar: texto/html,aplicación/xhtml+xml,aplicación/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" -H "Aceptar-Codificación: gzip, deflate, br" -H "Aceptar-Idioma: fr-FR,fr;q=0.5" -H "Conexión: mantener vivo" -H "Sec-Fetch-Dest: documento" -H "Modo de recuperación de segundos: navegar" -H "Sec-Fetch-Site: sitio cruzado" -H "Solicitudes de actualización-inseguras: 1" -H "Agente de usuario: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --salida "vinted_photo_$count.jpg" $foto_url ((cuenta++)) || verdadero hecho
Simplemente guárdelo en un archivo download_full_size_images.sh
y llámelo con:
bash -e -x download_full_size_images.sh URL_OF_THE_ITEM
(adapte el TLD en el script al TLD de su artículo)
Esta es la versión 2. No es compatible con la versión 1.