A Python scraper for Vinted, a popular secondhand fashion marketplace, powered by ScrapingAnt API.
- Search for items by keyword
- Filter by category (Women, Men, Kids, Home, Electronics, etc.)
- Filter by price range
- URL-based pagination support
- Export to CSV and JSON formats
- Automatic deduplication of listings
- Configurable request delays
- Python 3.8+
- ScrapingAnt API key (Get free API key)
Note: The ScrapingAnt free plan has a concurrency limit of 1 thread. For higher throughput, consider upgrading to a paid plan.
- Clone the repository:
git clone https://github.com/scrapingant/VintedScraper.git
cd VintedScraper- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set your ScrapingAnt API key:
export SCRAPINGANT_API_KEY="your_api_key_here"Search for items by keyword:
python main.py -s "nike shoes"python main.py -c women
python main.py -c men
python main.py -c electronicspython main.py -s "vintage dress" -c womenpython main.py -s "sneakers" -p 5 # Scrape 5 pagespython main.py -s "gucci bag" --min-price 50 --max-price 200python main.py --list-categoriespython main.py -s "jeans" -o results # Custom output filename
python main.py -s "jeans" --json # Also export to JSONusage: main.py [-h] [-s SEARCH] [-c CATEGORY] [-p PAGES] [-d DELAY]
[-o OUTPUT] [--json] [--min-price MIN_PRICE]
[--max-price MAX_PRICE] [--list-categories] [--api-key API_KEY]
Options:
-s, --search Search query
-c, --category Category to scrape
-p, --pages Max pages to scrape (default: 2)
-d, --delay Delay between requests in seconds (default: 1.0)
-o, --output Output filename (without extension)
--json Also export to JSON format
--min-price Minimum price filter
--max-price Maximum price filter
--list-categories List all available categories
--api-key ScrapingAnt API key (or use SCRAPINGANT_API_KEY env var)
| Category | Description |
|---|---|
| women | Women's clothing and accessories |
| men | Men's clothing and accessories |
| kids | Children's clothing |
| home | Home decor and items |
| electronics | Electronics and gadgets |
| entertainment | Books, games, movies |
| sports | Sports equipment and apparel |
| Field | Description |
|---|---|
| title | Item title/description |
| price | Listed price |
| price_with_protection | Price including Buyer Protection |
| brand | Brand name |
| condition | Item condition |
| size | Size (if applicable) |
| item_id | Vinted item ID |
| listing_url | Full URL to listing |
| image_url | Main item image URL |
| favorites_count | Number of favorites |
| category | Search category |
| search_query | Search query used |
| scraped_at | Scraping timestamp |
VintedScraper/
├── config.py # Configuration settings
├── models.py # Data models
├── scraper.py # Main scraper logic
├── utils.py # Utility functions
├── main.py # CLI entry point
├── requirements.txt # Dependencies
├── output/ # Output directory
│ └── .gitkeep
└── README.md
MIT License