Toolvore

URL Extractor

Extract HTTP(S) links from text or saved HTML locally, count repeated URLs and export source locations.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Extracts HTTP(S) URLs from text or inert HTML, counts repeated normalized links and exports their first source locations.

How to use it

  1. 1Choose text or HTML and paste or load a UTF-8 source file.
  2. 2For relative HTML links, supply the base URL explicitly and choose the attribute scope.
  3. 3Review accepted/skipped candidates and download TXT or CSV.

Example

Input
See https://example.com/help, then https://example.com/help.
Output
https://example.com/help — 2 occurrences

What happens to your data

Source is parsed locally without loading HTML resources or visiting links. Exports can contain private paths/query values and are not anonymized.

Last updated October 2026

Find links in a pasted note, log, email export or saved HTML file, then turn them into a reviewable list. Plain-text mode finds full HTTP and HTTPS URLs. HTML mode reads link attributes as data and can resolve relative links against a base URL that you supply. Repeated normalized URLs can be combined with occurrence counts, and the result can be sorted or exported as TXT and CSV.

This is an extraction tool, not a crawler. It does not fetch the supplied HTML, load its images, run its scripts, follow links or check HTTP status. That makes it useful for preparing a small link inventory from material already on your device. Use a separate authorized crawler or status checker when you actually need live-site verification.

How it works

Choose the input format explicitly. Plain-text mode looks for strings beginning with http:// or https://, stopping at whitespace and common markup delimiters. It removes trailing periods, commas, semicolons and exclamation marks, plus unmatched closing parentheses, square brackets and braces. Those are heuristics: punctuation can also belong to a legitimate URL. The CSV retains the original candidate before URL normalization so you can review what was accepted, but trailing punctuation removed by the text-boundary rule is not part of that retained candidate.

HTML mode uses parse5, an HTML parser that creates data structures without attaching user nodes to a browser document. By default it inspects href attributes on a and area elements. An explicit option also inspects href, src and poster attributes on other elements. It does not parse srcset lists, CSS url() expressions, JavaScript source or dynamically generated navigation. Template contents are inspected as inert source data. Unknown HTML can be repaired by the HTML parsing algorithm; this is not an HTML conformance validator.

Only the base URL entered into the tool resolves relative and protocol-relative HTML links. Embedded base elements are ignored so a saved document cannot silently choose another resolution context. Without a base, relative links are skipped and counted. Fragment-only references can be resolved when a base is supplied. Every accepted output is an HTTP(S) URL; data, javascript, mailto and other schemes are excluded. URLs with embedded usernames or passwords are excluded too.

The native URL parser normalizes hostnames, default ports, relative paths and percent-encoded path details according to the browser's URL rules. Deduplication uses the normalized complete URL, including query order and fragment unless you explicitly remove fragments. It preserves the first occurrence and adds a count. Sorting is an explicit deterministic text sort. Equivalent application URLs with differently ordered parameters are not assumed to be duplicates, and the tool never strips tracking parameters automatically.

The result records the original candidate, source kind and one-based source location. In text mode this is the URL candidate's starting line and UTF-16 column. In HTML mode it is the source element's starting line and column, not the attribute's exact byte offset. Deduplicated rows retain the first location. Preview is limited to 100 rows; TXT and CSV downloads contain all accepted output rows. A zero-result report is still useful because it shows skipped candidates rather than pretending a site had no links.

Source is limited to 1 MiB. HTML parsing is bounded to 50,000 visited nodes and depth 100, and output to 2,000 supported occurrences. Text scanning additionally stops above 4,000 candidates. Very large or complex documents should be split. File import accepts UTF-8; any edit clears the old output. If an asynchronous extraction or file read finishes after a newer edit, that stale result is discarded.

The tool does not intentionally save source in browser storage. Downloaded files can expose private query parameters and internal paths. CSV original-value fields that resemble spreadsheet formulas receive an apostrophe prefix; TXT contains the accepted normalized URLs. Review both exports before sending them to a colleague or another service. Local extraction is not a security assessment of the destinations.

Worked example: Count repeated links

Input
Read https://example.com/help, then https://example.com/help and https://example.org/guide#part.
Result
https://example.com/help — 2 occurrences https://example.org/guide#part — 1 occurrence

Default deduplication combines the repeated help link. The text-boundary rule removes sentence punctuation; the fragment stays.

Common use cases

  • Extract a link inventory from saved HTML without opening its resources
  • Collect repeated URLs from a text log before reviewing them
  • Resolve relative anchor links against an explicit known base
  • Export URLs and first-source locations for an editorial or migration checklist

Frequently asked questions

Does it visit the links?+

No. It parses supplied text locally and does not fetch, open, check or follow destinations. A result says a URL was extracted, not that the page exists or is safe.

Why are some relative links skipped?+

A relative path needs a resolution context. Enter a base HTTP(S) URL in HTML mode; embedded base elements are ignored. Non-HTTP schemes and credential-bearing URLs are also excluded.

Will it find every link in an HTML page?+

No. The selected attribute scope is explicit. JavaScript-generated links, srcset lists and CSS URLs are outside scope; a saved source file can differ from a rendered live page.

Can punctuation at the end of a URL be lost?+

Plain-text mode applies disclosed punctuation heuristics. Review the list when parentheses or sentence punctuation are actually part of a URL. HTML attribute boundaries are more definite for saved markup.

What counts as a duplicate?+

The normalized full URL is the key. Query ordering and fragments remain significant unless fragment removal is explicitly enabled. The first source location is retained and a count shows repeated occurrences.

Can I export private links safely?+

Exports can contain private query values or internal paths. Review them before sharing. Local processing prevents this tool uploading your source; it does not anonymize a downloaded link list.