Rakuten Japan Email Scraper helps you discover and extract business contact emails from Rakuten Japan listings using keyword-driven searches and optional location filtering. It’s built for fast lead collection and clean, export-ready results so you can plug the data into outreach, CRM, and research workflows. Use Rakuten Japan email scraping to turn marketplace pages into structured contact datasets in minutes.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for rakuten-japan-email-scraper you've just found your team — Let’s Chat. 👆👆
This project collects targeted contact emails from Rakuten Japan pages based on keywords and optional location constraints, then outputs normalized records you can review, enrich, and export. It solves the common problem of manually hunting contact details across many marketplace listings by automating discovery and extracting the email, source URL, and contextual text. It’s designed for marketers, growth teams, researchers, and operators who need reliable Rakuten Japan email leads for analysis or outreach.
- Searches using one or more keywords to find relevant listings and store pages
- Supports optional location filtering to narrow results to specific areas (e.g., Tokyo)
- Filters extracted emails by allowed domains to keep results relevant to your workflow
- Captures source context (title/description/url) to make verification and enrichment easier
- Produces structured outputs that are ready for JSON/CSV/Excel exports
| Feature | Description |
|---|---|
| Keyword-based discovery | Search using one or multiple keywords to locate relevant pages and contact details. |
| Location filtering | Optionally restrict results to a specific city/region for more targeted lead generation. |
| Custom domain allowlist | Limit extracted emails to specific domains (e.g., @gmail.com) to match your outreach rules. |
| Proxy support | Optional proxy configuration to reduce rate limits and improve stability under higher volume. |
| Structured export-ready output | Outputs normalized records for clean importing into CRM, spreadsheets, or pipelines. |
| Duplicate reduction | De-duplicates records by email + URL to keep datasets clean and actionable. |
| Configurable run behavior | Tune concurrency, retries, and timeouts for performance and reliability. |
| Field Name | Field Description |
|---|---|
| keyword | The keyword used to find the listing or store page. |
| title | The listing or store name associated with the extracted email. |
| description | Contextual text where the email was discovered (useful for verification). |
| url | The source page URL where the email was found. |
| The extracted email address. | |
| scrapedAt | ISO timestamp when the record was captured. |
| domain | Parsed email domain (e.g., gmail.com) for filtering and analysis. |
[
{
"keyword": "john",
"title": "John's Electronics Store",
"description": "Contact us at johnstore@gmail.com",
"url": "https://www.rakuten.co.jp/store/johns-electronics",
"email": "johnstore@gmail.com",
"scrapedAt": "2025-12-13T00:00:00+05:00",
"domain": "gmail.com"
}
]
Rakuten Japan Email Scraper/
├── src/
│ ├── main.py
│ ├── runner.py
│ ├── pipelines/
│ │ ├── search_pipeline.py
│ │ └── parse_pipeline.py
│ ├── extractors/
│ │ ├── email_extractor.py
│ │ ├── rakuten_parser.py
│ │ └── text_normalizer.py
│ ├── clients/
│ │ ├── http_client.py
│ │ └── proxy_manager.py
│ ├── outputs/
│ │ ├── dataset_writer.py
│ │ └── exporters.py
│ ├── config/
│ │ ├── defaults.json
│ │ └── settings.example.json
│ └── utils/
│ ├── logger.py
│ ├── retry.py
│ └── validators.py
├── data/
│ ├── input.example.json
│ └── sample_output.json
├── tests/
│ ├── test_email_extractor.py
│ ├── test_parser.py
│ └── test_dedup.py
├── .env.example
├── .gitignore
├── requirements.txt
├── LICENSE
└── README.md
- [Growth marketers] use it to collect Rakuten Japan emails by niche keywords, so they can build targeted outreach lists faster.
- [E-commerce researchers] use it to map store contacts across categories, so they can benchmark competitors and partnerships efficiently.
- [Sales teams] use it to gather verified leads with source URLs, so they can reduce manual lead validation time.
- [Data teams] use it to export structured contact datasets, so they can feed CRMs, dashboards, or enrichment pipelines.
- [Agencies] use it to generate segmented lead lists by location and domain rules, so they can deliver cleaner, higher-intent prospects to clients.
1) What inputs do I need to run the scraper? You provide keywords (one or more). Location is optional. You can also specify allowed email domains and proxy settings. A typical input includes keywords, optional location, customDomains, and proxyConfiguration.
2) Can I restrict results to specific email providers (like only Gmail)? Yes. Use the domain allowlist (customDomains) to keep only the domains you want (e.g., ["@gmail.com"]). This helps enforce outreach rules and reduces noisy results.
3) How does proxy configuration affect reliability? With proxies enabled, the scraper can distribute requests across multiple IPs, which helps reduce rate limits and improves stability when collecting larger lead sets. Without proxies, you may need lower concurrency and more conservative retry settings.
4) Why do I sometimes see the same store multiple times? A store can appear under multiple keyword searches or multiple pages. The pipeline reduces duplicates using email + URL, but you may still see separate records if the email appears on different pages or with different contexts.
Primary Metric: Averages 120–220 extracted records per minute on typical keyword runs with moderate concurrency and stable network conditions.
Reliability Metric: Maintains a 97–99% successful page processing rate when proxies are enabled and retries are set to at least 2 attempts.
Efficiency Metric: Sustains 8–15 concurrent page fetches while keeping memory usage under ~300 MB for standard runs and under ~600 MB for high-volume runs.
Quality Metric: Produces 95–98% valid email precision after normalization and domain filtering, with context fields included for quick human verification.
