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/
。
如果?noredirect=1
已售出,則前往 url 將重定向到類別,而不是商品,除非您已登入。
如果您已經使用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" --output 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" --output 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。