URL Extractor

Extract all URLs and web links from any text block. Copy or download the list. Free online tool, runs in your browser.

Preparing private browser tool…

Your file will stay on this device.

What the extractor looks for

The tool scans your text for two patterns: a run beginning with http:// or https:// and a run beginning with www., in both cases continuing until the next whitespace character. Everything matched is listed one per line in the order it appeared, with an optional deduplication pass that keeps the first occurrence of each distinct string.

That whitespace rule is the important one to understand, because it defines the boundaries of a match. A URL that is broken across two lines will be captured only up to the line break, and anything attached to the URL without a space, including a closing parenthesis, a trailing full stop or a quotation mark, will be captured as part of it.

The practical consequence is worth checking for. Extracting from the sentence See https://example.com/page. for details yields https://example.com/page. with the sentence-ending period attached. Most servers will still resolve it, some will not, and a scripted consumer of the list certainly will not. Scan the output before feeding it anywhere automated.

What it will not find

Bare domains without a scheme or a www prefix are not matched, so example.com in the middle of a sentence is skipped. This is deliberate: a pattern loose enough to catch it also catches file names, version numbers and abbreviations, and the false positive rate rises sharply. If you need those, add the scheme before extracting or accept a manual pass.

Other schemes are also out of scope. mailto:, ftp:, tel:, ws: and custom application schemes such as slack:// are not recognised. Nor are protocol-relative URLs beginning with two slashes, which appear in older HTML, or IP-address URLs without a scheme.

Because the match is purely textual, the extractor does not parse HTML. Pasting a page's source gives you the URLs as they appear in the markup, including those inside script blocks and CSS, and href values wrapped in quotes will carry the closing quote only if there is no whitespace before it. For structured extraction from HTML, a parser is the right tool; this is for prose, chat logs, emails and plain text.

Deduplication and what counts as the same link

The deduplicate option compares strings exactly. Two entries are the same only if every character matches, so https://example.com/page and https://example.com/page/ are treated as different, as are the same URL with and without a trailing tracking parameter, and the same host written with and without www.

That strictness is the safe default, because normalising URLs correctly is harder than it looks: a trailing slash is significant on some servers, query parameter order can matter, and case is significant in a path while not in a host. A tool that guessed would silently merge links that point at different resources.

If what you want is a set of genuinely distinct destinations, clean the list before deduplicating. Strip tracking parameters, settle on a single form for trailing slashes, and lowercase the host. Extracting first and cleaning second is usually easier than the reverse.

Typical uses

The most common is auditing. Pulling every link out of a long email thread, a chat export, a migrated document or a support ticket gives you a checkable list, which is the first step in finding dead links or in confirming that a migration rewrote everything it should have.

It is also useful for building a reading or download queue from an unstructured source. A newsletter, a meeting note or a set of bookmarks pasted as text yields a clean list that can be pasted into a downloader, a link checker or a spreadsheet.

Everything runs in the page as you type, so nothing you paste is uploaded, which matters when the source text is a private email or an internal document. The count next to the output updates live, which is a quick way to see whether a document contains the number of links you expected.

Frequently asked questions

Why does the extracted URL include a trailing period or bracket?
A match continues until the next whitespace character, so punctuation attached directly to the URL is captured with it. This is unavoidable without guessing, since a period and a closing parenthesis can both be legitimate parts of a URL. Trim the output when the surrounding text is prose.
Why are bare domains like example.com not found?
Only runs beginning with http://, https:// or www. are matched. A pattern permissive enough to catch a bare domain also matches file names, version numbers and sentence fragments, which produces far more noise than it removes. Add the scheme first if you need those included.
Does it find email addresses or mailto links?
No. Only the two web patterns are recognised, so mailto:, tel:, ftp: and other schemes are skipped, as are plain email addresses.
Why does deduplication keep two links that look the same?
Comparison is exact. A trailing slash, a differing query parameter, or a www prefix makes two strings different even when they resolve to the same page. Normalising URLs automatically risks merging links that genuinely point elsewhere, so the tool leaves that decision to you.
Can I extract links from HTML source?
You can, but the match is textual rather than structural, so you will also get URLs from script and style blocks, and attribute quotes may end up attached. For reliable extraction from markup, parse the HTML instead.
Is my text uploaded?
No. The scan runs in your browser as you type and nothing is sent anywhere, so it is safe to paste private documents.