Extract email addresses from any webpage or pasted text. Free email extractor that finds mailto links, inline addresses, and obfuscated emails from HTML source.
You have a supplier directory, a competitor's team page, or a list of local business sites open in your browser. Somewhere in that HTML are the email addresses you need. They are buried inside mailto links, scattered across paragraphs, or hidden behind JavaScript-rendered contact sections. You could view-source and Ctrl+F your way through each page. That stops working after the third one.
This email extractor does the scanning for you. Enter a URL and it fetches the page, parses the HTML, and returns every email address it finds. Or paste raw HTML, CSV exports, log files, or any text and extract emails instantly. Results are deduplicated, sorted, and ready to copy.
The tool offers two modes depending on whether you have a URL or already have the content.
Paste Text mode is entirely client-side. No data is sent to any server. Use it when you already have the content from view-source, a database export, a spreadsheet, or any other local source.
The tool scans two sources of email addresses in a webpage or text document:
| Source | How it's found | Example |
|---|---|---|
| mailto: links | Parsed from <a href="mailto:..."> elements in the HTML |
<a href="mailto:info@example.com"> |
| Inline text | Matched by regex pattern in the visible page text | Contact us at support@example.com |
Results are automatically deduplicated and lowercased. If the same email appears in both a mailto link and the page text, it shows up once. The domain is extracted from each email for grouping and analysis.
The regex pattern matches standard email formats following RFC 5322 simplified syntax: local-part@domain.tld. The local part allows letters, numbers, dots, underscores, percent signs, plus signs, and hyphens. The domain requires at least two characters in the top-level domain.
Both modes use the same extraction logic. They differ in where the content comes from and what data leaves your browser.
| Feature | Check URL | Paste Text |
|---|---|---|
| Data source | Server fetches the page HTML | You paste text into the browser |
| Data sent to server | The URL only (page is fetched server-side) | Nothing. All processing is local. |
| Finds mailto: links | Yes (parsed from HTML DOM) | Yes (matched from raw source text) |
| Finds inline emails | Yes (from visible page text) | Yes (from pasted content) |
| Handles JavaScript-rendered content | No (server-side fetch, no JS execution) | Yes (if you paste the rendered source) |
| Best for | Quick scans of public pages | Local files, exports, logs, sensitive content |
For JavaScript-heavy pages that load contact information dynamically, use your browser's DevTools to view the rendered source, copy it, and paste it into the Paste Text mode. The URL mode fetches the initial HTML response without executing JavaScript, so dynamically injected emails will not be captured.
Websites display email addresses in several ways. Some are easy to extract. Others require manual work.
contact@example.com written anywhere in the page body, headings, paragraphs, footers, or structured data.<a href="mailto:sales@example.com?subject=Inquiry">. The tool extracts the email and strips query parameters.data-email, title, or other attributes that appear in the visible text of the parsed document.user+tag@example.com. The plus-addressing format is matched by the extraction pattern.info@company.co.uk, contact@firma.de. Any TLD with two or more characters is matched.user [at] example [dot] com or user(at)example(dot)com. These human-readable substitutions are not matched by the regex pattern. You will need to search for these manually.Email extraction is a common step in web scraping pipelines. I've seen developers use this tool in a few different ways depending on where they are in the process.
Enter individual URLs to extract contact emails from business directories, team pages, or about pages. Copy the results as CSV for import into a spreadsheet or CRM. This is the fastest approach when you are checking a handful of pages by hand.
If you have already scraped page HTML using Python (requests + BeautifulSoup, Scrapy, lxml) or a browser automation tool (Selenium, Playwright, Puppeteer), paste the collected HTML into Paste Text mode. You get deduplicated emails without writing additional parsing code.
Use this tool to cross-check your own email extraction regex or XPath expressions. Fetch a page with this extractor, compare the results with your script's output, and identify any emails your code is missing. If you need to test XPath expressions directly, use the XPath Tester.
Email extraction is a tool. How you use the extracted data determines whether it is ethical and legal.
This tool processes publicly available content. In URL mode, the server fetches the page as a standard HTTP request, the same content any browser or search engine crawler would see. In Paste mode, all processing happens locally in your browser and no data is transmitted.
Enter the website URL into this email extractor and click Extract Emails. The tool fetches the page HTML and scans it for email addresses in mailto links and visible text. Results are deduplicated and available to copy as a list or CSV.
No. Paste Text mode runs entirely in your browser. The email regex matching happens locally and nothing is sent to any server. Use this mode for sensitive content, internal documents, or any data you do not want to transmit.
Common reasons: the page loads email addresses with JavaScript (URL mode does not execute JS), the email is obfuscated with [at]/[dot] substitutions, the email is rendered as an image, or the email is behind a CAPTCHA-protected form. For JS-rendered content, paste the rendered source from your browser's DevTools instead.
This tool processes one URL at a time. For bulk extraction across many pages, use a scraping library like Python's requests + BeautifulSoup or Scrapy, then paste the combined output into Paste Text mode to deduplicate and export the results.
Extracting publicly visible email addresses is generally legal, but using them for unsolicited email may violate CAN-SPAM, GDPR, CASL, or other regulations depending on your jurisdiction. Always check the website's terms of service and applicable laws before using extracted data for outreach.
The tool matches standard email formats: local@domain.tld where the local part includes letters, numbers, dots, underscores, percent signs, plus signs, and hyphens. The domain must have at least a two-character TLD. It handles subaddressing (user+tag@domain.com) and international domains.
Enter your website URL in Check URL mode. The tool will show every email address visible in your page's HTML source. This is useful for auditing whether personal or internal email addresses are accidentally exposed to scrapers and bots.
No. The URL mode fetches the initial HTML response without executing JavaScript. If a page loads emails dynamically via JavaScript, open the page in your browser, use DevTools (Ctrl+U or right-click > View Page Source), copy the rendered HTML, and paste it into the Paste Text mode.
Structured page data instead of raw HTML. Your agent processes less, decides faster, and costs less to run.