Vinted เป็นเว็บไซต์สำหรับซื้อและขายเสื้อผ้ามือสองในหลายประเทศในยุโรป บางครั้งการดาวน์โหลดรูปถ่ายของบทความก็มีประโยชน์
ในขณะที่เขียน (วันที่ 14 ตุลาคม 2023) การแยกข้อมูลจากเว็บไซต์ Vinted นั้นค่อนข้างง่าย คุณสามารถดูรายละเอียดทั้งหมดได้ด้านล่าง คุณสามารถดาวน์โหลดรูปถ่ายทั้งหมดด้วยสคริปต์ทุบตีขนาดเล็ก โดยไม่ต้องใช้ 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
ที่ตั้งชื่อตามรหัสรายการและชื่อเรื่องโดยอัตโนมัติ ให้ใช้ตัวเลือก --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/
-title/
หากขายสินค้าแล้ว ไปที่ URL จะเปลี่ยนเส้นทางไปยังหมวดหมู่ ไม่ใช่สินค้า ยกเว้นในกรณีที่คุณเข้าสู่ระบบแล้ว เพื่อหลีกเลี่ยงปัญหาดังกล่าว ให้เพิ่ม ?noredirect=1
ต่อท้าย URL
หากคุณติดตั้งด้วย pip
คุณสามารถใช้คำสั่ง vinted-downloader
ได้:
vinted-downloader "PRODUCT_URL"vinted-downloader --seller "PRODUCT_URL"vinted-downloader --all "PRODUCT_URL"
pip
การดาวน์โหลดผลิตภัณฑ์ Vinted นั้นอยู่บน PyPI ดังนั้นคุณจึงสามารถเรียกใช้:
pip3 ติดตั้ง vinted-downloader
การอ้างอิงทั้งหมดจะถูกติดตั้งโดยอัตโนมัติ
จากนั้นคุณสามารถใช้คำสั่ง vinted-downloader
ได้ดังนี้:
vinted-downloader [--ผู้ขาย] [-o DIR] [--ทั้งหมด] "PRODUCT_URL"
หรือหากคุณต้องการใช้ python:
python3 -m vinted_downloader [--ผู้ขาย] [-o DIR] [--ทั้งหมด] "PRODUCT_URL"
หากต้องการอัพเดตแพ็คเกจให้รัน:
การติดตั้ง pip3 -- อัปเกรด vinted-downloader
ก่อนอื่นคุณต้องติดตั้ง Python:
ไปที่ https://www.python.org/downloads/
ดาวน์โหลดตัวติดตั้ง "Python สำหรับ Windows"
เรียกใช้โปรแกรมติดตั้ง (คลิกที่ไฟล์ที่ดาวน์โหลด)
ทำเครื่องหมายที่ช่อง "เพิ่ม python.exe ไปยัง PATH" (นี่เป็น สิ่งสำคัญมาก ดูภาพด้านล่าง)
คลิกที่ "ติดตั้งทันที"
จากนั้นเปิด Command Prompt (พิมพ์ "prompt" ในแถบค้นหาที่ด้านล่างของหน้าจอ):
พิมพ์ python --version
เพื่อตรวจสอบว่าติดตั้ง Python อย่างถูกต้อง (คุณควรเห็นเวอร์ชันของ Python ไม่ใช่ข้อความแสดงข้อผิดพลาด)
พิมพ์ pip install vinted-downloader
สิ่งนี้จะติดตั้งตัวดาวน์โหลดและการอ้างอิง
จากนั้นใช้มันตามที่อธิบายไว้ข้างต้น ตัวอย่างเช่น:
vinted-downloader "PRODUCT_URL"vinted-downloader --seller "PRODUCT_URL"vinted-downloader --all "PRODUCT_URL"
หากคำสั่ง vinted-downloader
ไม่ทำงาน ให้ใช้:
หลาม -m vinted_downloader "PRODUCT_URL"
หากต้องการอัปเดต ให้รัน:
pip install --upgrade vinted-downloader
โคลนพื้นที่เก็บข้อมูล GitHub และติดตั้งการขึ้นต่อกัน
สำหรับ Linux และ MacOS:
# โคลน: git clone https://github.com/boberle/vinted-downloader.git# ติดตั้ง deps:cd vinted-downloader python3 -m venv venvsource venv/bin/activate pip ติดตั้ง -r ข้อกำหนด.txt# ใช้: python3 vinted_downloader.py "PRODUCT_URL"
ข้อมูลรายการทั้งหมดอยู่ในไฟล์ JSON ที่ดาวน์โหลดพร้อมกับไฟล์ HTML รหัสผลิตภัณฑ์อยู่ใน URL ของรายการ: https://www.vinted.TLD/items/ITEM_ID-slug
เมื่อคุณได้รับรหัสรายการแล้ว คุณเพียงแค่ต้องดาวน์โหลดไฟล์ JSON ที่ https://www.vinted.TLD/api/v2/items/ITEM_ID?localize=false
ตัวอย่างเช่น หากคุณดาวน์โหลดด้วย curl คุณจะได้รับข้อผิดพลาด "ไม่ได้รับอนุญาต" คุณต้องเชื่อมต่อกับหน้า HTML ก่อน (เช่น หน้าแรกของ vinted ที่มี TLD เดียวกันของหน้าผลิตภัณฑ์) เพื่อรับคุกกี้การตรวจสอบสิทธิ์ (แม้ว่าจะเป็นการตรวจสอบสิทธิ์แบบไม่ระบุชื่อก็ตาม) จากนั้นจึงนำคุกกี้เหล่านั้นกลับมาใช้ใหม่ นี่คือสาเหตุที่สคริปต์ทุบตีด้านล่างใช้คำสั่ง 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 (ราคา หากรายการนั้นถูกจอง ซ่อนไว้ ฯลฯ) จริงๆ ทุกอย่างที่แสดงบนเพจ และอื่นๆ อีกมากมาย
ดังนั้น หากคุณต้องการดาวน์โหลดรูปภาพในขนาดดั้งเดิมโดยใช้สคริปต์ทุบตีเท่านั้น:
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 "การเชื่อมต่อ: Keep-alive" -H "Sec-Fetch-Dest: document" -H "Sec-Fetch-Mode: นำทาง" -H "Sec-Fetch-Site: cross-site" -H "TE: ตัวอย่าง" -H "คำขออัปเกรดที่ไม่ปลอดภัย: 1" -H "User-Agent : 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"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 "การเชื่อมต่อ: Keep-alive" -H "Sec-Fetch-Dest: document" -H "Sec-Fetch-Mode: นำทาง" -H "Sec-Fetch-Site: cross-site" -H "TE: ตัวอย่าง" -H "คำขออัปเกรดที่ไม่ปลอดภัย: 1" -H "User-Agent : 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 ใน `cat vinted_item.out | gzip -d | jq -r ".item.photos[] | .full_size_url"`ทำ ขด -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
แล้วเรียกมันว่า:
ทุบตี -e -x download_full_size_images.sh URL_OF_THE_ITEM
(ปรับ TLD ในสคริปต์ให้เป็น TLD ของรายการของคุณ)
นี่คือเวอร์ชัน 2 ไม่สามารถใช้งานร่วมกับเวอร์ชัน 1 ได้