Vinted는 유럽 여러 국가에서 구할 수 있는 중고 의류를 사고 파는 웹사이트입니다. 때로는 기사의 사진을 다운로드하는 것이 유용할 때도 있습니다.
글을 쓰는 시점(2023년 10월 14일)에는 Vinted 웹사이트에서 정보를 스크랩하는 것이 다소 쉽습니다. 아래에서 모든 세부정보를 확인할 수 있습니다. Python 없이도 작은 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
옵션을 사용하여 출력 디렉터리를 지정합니다(기본값은 현재 디렉터리). 존재하지 않는 경우 생성됩니다. 항목 ID와 제목을 따라 자동으로 이름이 지정된 -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로 이동하면 로그인한 경우를 제외하고 항목이 아닌 카테고리로 리디렉션됩니다. 이를 방지하려면 URL 끝에 ?noredirect=1
추가하세요.
pip
로 설치한 경우 vinted-downloader
명령을 사용할 수도 있습니다.
vinted-downloader "PRODUCT_URL"vinted-downloader --판매자 "PRODUCT_URL"vinted-downloader --all "PRODUCT_URL"
pip
으로Vinted 제품 다운로드는 PyPI에 있으므로 다음을 실행할 수 있습니다.
pip3 설치 vinted-다운로더
모든 종속성은 자동으로 설치됩니다.
그런 다음 vinted-downloader
명령을 다음과 같이 사용할 수 있습니다.
vinted-downloader [--판매자] [-o DIR] [--all] "PRODUCT_URL"
또는 Python을 사용하려는 경우:
python3 -m vinted_downloader [--판매자] [-o DIR] [--all] "PRODUCT_URL"
패키지를 업데이트하려면 다음을 실행하세요.
pip3 설치 --업그레이드 vinted-다운로더
먼저 Python을 설치해야 합니다.
https://www.python.org/downloads/로 이동하세요.
"Windows용 Python" 설치 프로그램을 다운로드하세요.
설치 프로그램 실행(다운로드한 파일 클릭)
"PATH에 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 --upgrade vinted-다운로더
github 저장소를 복제하고 종속성을 설치합니다.
Linux 및 MacOS의 경우:
# 클론:git 클론 https://github.com/boberle/vinted-downloader.git# 설치 deps:cd vinted-downloader python3 -m venv venvsource venv/bin/활성화 pip install -r 요구사항.txt# 사용: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 파일을 다운로드하면 됩니다.
예를 들어, 컬을 사용하여 다운로드하면 "승인되지 않음" 오류가 발생합니다. 인증 쿠키를 가져오고(익명 인증인 경우에도) 이를 재사용하려면 먼저 HTML 페이지(예: 제품 페이지와 동일한 TLD를 사용하는 빈팅된 홈 페이지)에 연결해야 합니다. 이것이 아래 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+(?=-)"`컬 -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 "초 가져오기-대상: 문서" -H "초 가져오기 모드: 탐색" -H "초 가져오기 사이트: 교차 사이트" -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 "초 가져오기-대상: 문서" -H "초 가져오기 모드: 탐색" -H "초 가져오기 사이트: 교차 사이트" -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=0`cat vinted_item.out의 photo_url | 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" --output "vinted_photo_$count.jpg" $photo_url ((개수++)) || 진실된
download_full_size_images.sh
파일에 저장하고 다음과 같이 호출하세요.
bash -e -x download_full_size_images.sh URL_OF_THE_ITEM
(스크립트의 TLD를 항목의 TLD에 맞게 조정)
버전 2입니다. 버전 1과 다시 호환되지 않습니다.