A fast, reliable scraper for collecting structured product data from zigzag.kr. This project helps developers and analysts turn complex fashion listings into clean, usable datasets without manual effort. Built for scale, it focuses on speed, consistency, and data quality.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for kr-zigzag-scraper you've just found your team — Let’s Chat. 👆👆
The KR Zigzag Scraper extracts product-level information from zigzag.kr and organizes it into structured outputs. It solves the challenge of manually collecting large volumes of fashion and e-commerce data. This tool is ideal for developers, data teams, and researchers working with retail analytics or market insights.
- Crawls category and listing pages efficiently
- Parses HTML using a lightweight DOM approach
- Normalizes product attributes into consistent fields
- Handles pagination and crawl limits safely
- Designed for repeatable, automated runs
| Feature | Description |
|---|---|
| TypeScript-based crawler | Strong typing improves reliability and maintainability. |
| Cheerio HTML parsing | Fast DOM parsing without browser overhead. |
| Configurable crawl limits | Control depth and page volume per run. |
| Structured output | Clean, uniform records ready for analysis. |
| Scalable architecture | Easy to extend with new fields or rules. |
| Field Name | Field Description |
|---|---|
| productId | Unique identifier for the product listing. |
| name | Product title as shown on zigzag.kr. |
| brand | Brand or seller name. |
| price | Original listed price. |
| salePrice | Discounted price when available. |
| currency | Currency used for pricing. |
| category | Product category or collection. |
| productUrl | Direct URL to the product page. |
| imageUrl | Primary product image URL. |
[
{
"productId": "ZZ123456",
"name": "Oversized Knit Cardigan",
"brand": "DailyMood",
"price": 59000,
"salePrice": 47200,
"currency": "KRW",
"category": "Outerwear",
"productUrl": "https://www.zigzag.kr/catalog/products/ZZ123456",
"imageUrl": "https://image.zigzag.kr/ZZ123456/main.jpg"
}
]
KR Zigzag Scraper/
├── src/
│ ├── index.ts
│ ├── crawler/
│ │ └── zigzagCrawler.ts
│ ├── extractors/
│ │ └── productExtractor.ts
│ ├── utils/
│ │ └── logger.ts
│ └── config/
│ └── input.schema.json
├── data/
│ ├── sample-output.json
│ └── test-input.json
├── package.json
├── tsconfig.json
└── README.md
- Market analysts use it to track product pricing trends, so they can identify competitive gaps.
- E-commerce teams use it to monitor brands and inventory, so they can react faster to market changes.
- Data scientists use it to build fashion datasets, so they can train recommendation models.
- Researchers use it to study consumer offerings, so they can analyze retail dynamics.
Is this scraper limited to specific categories on zigzag.kr? No. It can be configured to start from any category or listing URL and will adapt to the page structure.
Does it handle discounted or sale products? Yes. When a sale price is present, both original and discounted prices are captured.
Can I extend the fields being extracted? Absolutely. The extractor layer is modular, making it easy to add or modify fields.
How does it handle large crawls? Crawl limits and pagination controls help maintain stability and prevent overloading resources.
Primary Metric: Processes an average of 120–150 product pages per minute on standard network conditions.
Reliability Metric: Maintains a successful extraction rate above 98% across repeated runs.
Efficiency Metric: Low memory footprint due to non-browser HTML parsing and minimal dependencies.
Quality Metric: Delivers consistently complete product records with normalized pricing and URLs.
