{"id":50405623,"url":"https://github.com/nikuscs/amz-crawler","last_synced_at":"2026-05-31T01:30:26.502Z","repository":{"id":335753168,"uuid":"1146866443","full_name":"nikuscs/amz-crawler","owner":"nikuscs","description":"🛒 Fast Rust CLI to search Amazon products with TLS fingerprint emulation. Compare prices across EU stores (TropicalPrice). Supports 15 regions.","archived":false,"fork":false,"pushed_at":"2026-05-12T10:38:29.000Z","size":170,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T12:32:28.852Z","etag":null,"topics":["amazon","cli","price-comparison","rust","tls-fingerprint","tropicalprice","web-scraping"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikuscs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-31T20:06:29.000Z","updated_at":"2026-05-12T10:38:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nikuscs/amz-crawler","commit_stats":null,"previous_names":["nikuscs/amz-crawler"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/nikuscs/amz-crawler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikuscs%2Famz-crawler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikuscs%2Famz-crawler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikuscs%2Famz-crawler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikuscs%2Famz-crawler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikuscs","download_url":"https://codeload.github.com/nikuscs/amz-crawler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikuscs%2Famz-crawler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33716338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon","cli","price-comparison","rust","tls-fingerprint","tropicalprice","web-scraping"],"created_at":"2026-05-31T01:30:22.090Z","updated_at":"2026-05-31T01:30:26.433Z","avatar_url":"https://github.com/nikuscs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦎 amz-crawler\n\n![CI](https://github.com/nikuscs/amz-crawler/actions/workflows/ci.yml/badge.svg)\n![Release](https://img.shields.io/github/v/release/nikuscs/amz-crawler)\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n\n**Fast Rust CLI to search Amazon products with browser-grade TLS fingerprinting.**\n\n\u003e **Disclaimer:** This project is for **educational purposes and AI automation research only**.\n\u003e The authors are not responsible for any misuse or for any damages resulting from the use of this tool.\n\u003e Users are solely responsible for ensuring compliance with applicable laws and the terms of service\n\u003e of any websites accessed. This software is provided \"as-is\" without warranty of any kind.\n\u003e\n\u003e If you are a rights holder and wish to have this project removed, please [contact me](https://github.com/nikuscs).\n\n\u003e **Note:** This project was partially developed with AI assistance and may contain bugs or unexpected behavior. Use at your own risk.\n\nSearch products, filter by price/rating, compare prices across 15 regions, and find the cheapest EU deals with TropicalPrice integration.\n\n## Why?\n\n- **Stealth** — Chrome 131 TLS fingerprint via [wreq](https://github.com/pwnwriter/wreq). Bypasses basic bot detection.\n- **Fast** — Native Rust. No browser overhead.\n- **EU Price Comparison** — Find the cheapest Amazon store across ES/DE/FR/IT/UK/NL with TropicalPrice.\n- **Flexible Output** — Table, JSON, Markdown, CSV. Pipe to `jq`, feed to scripts, or read in terminal.\n\n## Install\n\n```bash\n# From source (requires Rust)\ncargo install --git https://github.com/nikuscs/amz-crawler --features tropical\n\n# Or clone and build\ngit clone https://github.com/nikuscs/amz-crawler\ncd amz-crawler\ncargo build --release --features tropical\n```\n\nPre-built binaries available in [Releases](https://github.com/nikuscs/amz-crawler/releases).\n\n## Usage\n\n### Search Amazon\n\n```bash\namz-crawler search \"mechanical keyboard\"\namz-crawler search \"laptop\" --max 10 --min-price 500 --max-price 1000\namz-crawler search \"headphones\" --min-rating 4.5 --prime-only --no-sponsored\namz-crawler search \"monitor\" --keywords ips,4k --exclude refurbished\namz-crawler --region de search \"kaffeemaschine\"\n```\n\n### Product Details\n\n```bash\namz-crawler product 1718504446\namz-crawler product 1718504446 1492052590 1718501854  # Multiple ASINs\n```\n\n### EU Price Comparison (TropicalPrice)\n\nFind the cheapest price across EU Amazon stores:\n\n```bash\n# Search TropicalPrice catalog\namz-crawler tropical \"sony wh-1000xm5\" --max 5\n\n# Compare specific product across EU stores\namz-crawler compare B0C8PSMPTH\n```\n\n**Output:**\n```\n📦 Sony WH-1000XM5 Wireless Headphones\n\nBest at 🇩🇪 DE: €279.99\n🛒 https://www.amazon.de/dp/B0C8PSMPTH\n\n🏆🇩🇪 DE: €279.99\n  🇪🇸 ES: €329.99 (+€50, +18%)\n  🇫🇷 FR: €339.99 (+€60, +21%)\n  🇮🇹 IT: €349.99 (+€70, +25%)\n\n💰 Max savings: €70.00 (25%)\n\n🔗 Links:\n   🇩🇪 DE: https://www.amazon.de/dp/B0C8PSMPTH\n   🇪🇸 ES: https://www.amazon.es/dp/B0C8PSMPTH\n   🇫🇷 FR: https://www.amazon.fr/dp/B0C8PSMPTH\n   🇮🇹 IT: https://www.amazon.it/dp/B0C8PSMPTH\n```\n\n### Regions\n\n```bash\namz-crawler regions  # List all supported regions\n```\n\n**Supported:** `us` `uk` `de` `fr` `es` `it` `ca` `au` `jp` `in` `br` `mx` `nl` `se` `pl`\n\n## Options\n\n### Search Filters\n\n| Flag | Description |\n|------|-------------|\n| `--max` | Max results (default: 20) |\n| `--min-price` | Minimum price |\n| `--max-price` | Maximum price |\n| `--min-rating` | Minimum rating (1.0-5.0) |\n| `--prime-only` | Only Prime-eligible |\n| `--no-sponsored` | Exclude sponsored listings |\n| `--keywords` | Required keywords in title (comma-separated) |\n| `--exclude` | Exclude keywords from title (comma-separated) |\n\n### Global Options\n\n| Flag | Description |\n|------|-------------|\n| `--region` | Amazon region (default: us) |\n| `--format` | Output: table, json, markdown, csv |\n| `--proxy` | Proxy URL (socks5/http) |\n| `--delay` | Request delay in ms (default: 2000) |\n| `--config` | Config file path |\n\n## Configuration\n\nCreate `~/.config/amz-crawler/config.toml`:\n\n```toml\nregion = \"es\"\ndelay_ms = 2000\ndelay_jitter_ms = 3000\nmax_results = 20\nformat = \"table\"\n# proxy = \"socks5://127.0.0.1:1080\"\n```\n\nEnvironment variables: `AMZ_REGION`, `AMZ_PROXY`, `AMZ_DELAY`\n\n## Output Formats\n\n```bash\namz-crawler search \"laptop\" --format json      # JSON (for scripts)\namz-crawler search \"laptop\" --format markdown  # Markdown (for LLMs)\namz-crawler search \"laptop\" --format csv       # CSV (for spreadsheets)\namz-crawler search \"laptop\" --format table     # Table (default)\n```\n\n## How It Works\n\n1. **TLS Fingerprinting** — Uses [wreq](https://github.com/pwnwriter/wreq) to emulate Chrome 131 TLS handshake (JA3/JA4).\n2. **Full Browser Headers** — Sends complete header set including Sec-Fetch-*, cookies, etc.\n3. **Request Jitter** — Random delays (2-5s default) to appear human.\n4. **Smart Parsing** — Handles regional price formats (1.234,56 € vs $1,234.56).\n\n## Related Projects\n\n- [⚖️ kante-kusta](https://github.com/nikuscs/kante-kusta) — KuantoKusta.pt price comparison CLI\n- [🕵️ olx-tracker](https://github.com/nikuscs/olx-tracker) — Track OLX.pt listings and get alerts on deals\n- [TropicalPrice](https://tropicalprice.com) — EU Amazon price comparison service\n- [wreq](https://github.com/pwnwriter/wreq) — Rust HTTP client with TLS fingerprinting\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikuscs%2Famz-crawler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikuscs%2Famz-crawler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikuscs%2Famz-crawler/lists"}