copy text from protected websitewebsite blocks copy pastecant copy text from websitedisable right clickweb content extraction

How to Copy Text From a Website That Won't Let You

Web2MD Team2026-11-015 min read

How to Copy Text From a Website That Won't Let You

You highlight a paragraph and nothing highlights. You right-click and the menu never appears. You hit Cmd+C and paste an empty string.

This is one of the more annoying things on the web, and it's worth understanding what's actually happening — because the fix depends entirely on which of three very different things is blocking you.

What's actually blocking you

1. CSS: user-select: none

The most common. One line of CSS tells the browser that text in this element can't be selected with a cursor:

body {
  -webkit-user-select: none;
  user-select: none;
}

The text is still right there in the document. It renders, screen readers announce it, Ctrl+F finds it. It just refuses to highlight.

2. JavaScript event handlers

A step up in effort — the page listens for the events and cancels them:

document.addEventListener('contextmenu', e => e.preventDefault())
document.addEventListener('copy', e => {
  e.clipboardData.setData('text/plain', 'Copying is disabled')
  e.preventDefault()
})

That second one is why you sometimes paste a sentence like "Copyright 2026 — content may not be reproduced" instead of what you selected.

3. The text isn't text

Occasionally the content is rendered as an image, or drawn into a <canvas>. There's no text node to select, so nothing will help except OCR. This is rare for articles but common for things like old scanned documents.

The important distinction: (1) and (2) are cosmetic. The content is in the DOM. (3) is real — the text genuinely isn't there as text.

What works

Reader Mode (free, built in, works ~70% of the time)

Your browser re-renders the article in its own shell, which means the original page's CSS and event handlers are gone.

  • Safari — Cmd+Shift+R, or the "AA" icon in the address bar
  • Firefox — F9, or the page icon in the address bar
  • Chrome — no stable built-in equivalent; the reading-mode side panel is the closest

Reader Mode is good at clean article pages. It's unreliable on documentation sites, forums, dashboards, and anything whose markup doesn't look like a blog post.

Disable JavaScript for that site

In Chrome: click the icon left of the URL → Site settings → JavaScript → Block, then reload.

This kills the event handlers from category 2. It also kills anything else the page needs JavaScript for, which on a modern site often means the content doesn't load at all. Worth trying, often not worth keeping.

View source

Ctrl+U / Cmd+Option+U shows the HTML. For a server-rendered page the text is in there and you can copy it from the source view.

It's genuinely useful as a last resort, and genuinely unpleasant to read. You'll be picking prose out of markup by hand. It also doesn't work for client-rendered pages, where the HTML is mostly an empty shell.

A converter extension

An extension runs inside the page and reads the DOM after it renders, which puts it past both categories 1 and 2 — and it can give you structured output rather than a wall of text.

This is what Web2MD does: one click turns the page into clean Markdown, with headings, lists, tables, and code blocks preserved and the navigation, sidebars, and footers dropped.

The part that matters more than the copy-blocking, honestly, is pages behind a login. An extension sees what your authenticated browser session sees. A server-side scraper or an AI tool fetching a URL gets the logged-out version — or a login wall. For internal wikis, admin dashboards, customer portals, and company intranets, that difference is the whole thing.

Where the line is

Worth being direct about this, since "bypass copy protection" is a phrase that deserves some care.

user-select: none is a styling decision, not an access control. It doesn't authenticate anything, doesn't encrypt anything, and doesn't stop a screen reader, Ctrl+F, or search-engine crawler. If you can read the page, the text was already sent to your computer.

So: reading a page you were served, and extracting its text for your notes, a quotation, or your own research, is ordinary use.

What you do next is a separate question with separate answers. Republishing someone's article, redistributing paid content, or breaking terms you actually agreed to are real concerns — and none of them change based on whether right-click was disabled. Cite your sources, don't redistribute what isn't yours.

And if a page requires a login you don't have, none of this applies. Nothing here gets you into content you can't already open.

Quick reference

| Situation | What to try | |---|---| | Text won't highlight | Reader Mode → converter extension | | Right-click menu blocked | Reader Mode, or disable JS for the site | | Paste gives a copyright notice | copy handler — Reader Mode or an extension | | Page needs login | Extension (reads your session); scrapers won't work | | Content is an image / scan | OCR — nothing else will help | | Need structure, not just text | Converter extension → Markdown |

If you're doing this for an AI tool

A specific case that comes up a lot: you want to give ChatGPT or Claude a page, and pasting it gives you either nothing or a mess of navigation text.

Two things help. Markdown preserves the document's structure — headings stay headings, tables stay tables — which is what lets a model follow a long technical document instead of flattening it into prose. And stripping the chrome cuts the token count substantially, which is often the difference between a page fitting in one prompt and not.

If the page is behind your company's SSO, an extension is also the only approach that works at all — the model can't fetch what it can't log into.

Related Articles

Most Read

last 30 days
  1. #1Can Claude Read Reddit? Why It Can't — And How to Fix It (2026)
  2. #2HTML vs Markdown for LLMs: I Wasted 67% of My Tokens for a Year
  3. #3Reducing Token Waste in ChatGPT and Claude: 7 Techniques That Cut Costs 72%
  4. #4Obsidian Web Clipper Official Plugin 2026: Complete Guide + When You Need More
  5. #5Reddit JSON API vs Scraping: The Honest 2026 Comparison for Developers

Latest Articles