Vinted 是一个在欧洲多个国家买卖二手衣服的网站。 有时下载文章的照片很有用。
在撰写本文时(2023 年 10 月 14 日),从 Vinted 网站上删除信息有些容易。 您可以在下面找到所有详细信息。您可以使用一个小的 bash 脚本下载所有照片,甚至不需要 python。
但是,如果您想要更多信息(不仅仅是照片)或者不知道如何在命令行上传输命令,这里有一个 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
目录的子目录中(以项目 id 和标题自动命名),请使用--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 将重定向到类别,而不是商品,除非您已登录。为避免这种情况,请在 url 末尾添加?noredirect=1
。
如果您已经使用pip
安装了它,您还可以使用vinted-downloader
命令:
vinted-downloader“PRODUCT_URL”vinted-downloader --卖家“PRODUCT_URL”vinted-downloader --all“PRODUCT_URL”
pip
Vinted 产品下载位于 PyPI 上,因此您可以运行:
pip3 安装 vinted-downloader
所有依赖项都会自动安装。
然后,您可以使用命令vinted-downloader
如下所示:
vinted-downloader [--seller] [-o DIR] [--all]“PRODUCT_URL”
或者,如果您更喜欢使用 python:
python3 -m vinted_downloader [--seller] [-o DIR] [--all] "Product_URL"
要更新包,请运行:
pip3 install --升级vinted-downloader
首先你需要安装Python:
转到 https://www.python.org/downloads/
下载安装程序“Python for Windows”
运行安装程序(单击下载的文件)
选中“将 python.exe 添加到路径”框(这非常重要,请参见下图)
点击“立即安装”
然后打开命令提示符(在屏幕底部的搜索栏中输入“提示”):
输入python --version
检查 Python 是否已正确安装(您应该看到 Python 的版本,而不是错误消息)
输入pip install vinted-downloader
。这将安装下载程序及其依赖项
然后像上面描述的那样使用它。例如:
vinted-downloader“PRODUCT_URL”vinted-downloader --卖家“PRODUCT_URL”vinted-downloader --all“PRODUCT_URL”
如果命令vinted-downloader
不起作用,请使用:
python -m vinted_downloader "Product_URL"
要更新,请运行:
pip install --升级vinted-downloader
克隆 github 存储库并安装依赖项。
对于 Linux 和 MacOS:
# 克隆:git 克隆 https://github.com/boberle/vinted-downloader.git# 安装 deps:cd vinted-downloader python3 -m venv venvsource venv/bin/activate pip install -r requests.txt# use:python3 vinted_downloader.py "Product_URL"
所有项目信息都位于与 HTML 文件一起下载的 JSON 文件中。产品 ID 可在商品的 url 中找到: https://www.vinted.TLD/items/ITEM_ID-slug
。
获得项目 ID 后,您只需在https://www.vinted.TLD/api/v2/items/ITEM_ID?localize=false
下载 JSON 文件。
例如,如果您使用curl下载它,您将收到“未经授权”的错误。您需要首先连接到 HTML 页面(例如,vinted 主页,与产品页面具有相同的 TLD)以获取身份验证 cookie(即使是匿名身份验证),然后重新使用它们。这就是下面的 bash 脚本使用 2 个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:跨站点”-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”--输出vinted_home.out “https://www.vinted.fr”卷曲 -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:跨站点”-H“TE:预告片”-H“升级不安全请求:1”-H“用户代理:Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0" --cookie "vinted_cookies.txt" --输出vinted_item.out "https://www.vinted.fr/api/v2/items/$item_id?localize=false"count=0for photo_url in `cat vinted_item.out | gzip -d | jq -r ".item.photos[] | .full_size_url"`do 卷曲 -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:跨站点” -H“升级不安全请求:1” -H“用户代理:Mozilla/5.0(X11;Linux x86_64;rv:109.0)Gecko/20100101 Firefox/118.0” --输出“vinted_photo_$count.jpg” $照片_url ((计数++)) ||特鲁多内
只需将其保存在文件download_full_size_images.sh
中并使用以下命令调用它:
bash -e -x download_full_size_images.sh URL_OF_THE_ITEM
(将脚本中的 TLD 调整为您项目的 TLD)
这是版本 2。不向后兼容版本 1。