How to Copy Text from a Protected or Read-Only Web Page

Updated July 7, 2026 · Written by a working indie developer, tested in Chrome 130+ on macOS and Windows 11

The short answer: if the page renders text as normal HTML, use DevTools ("Inspect" → copy from the Elements panel) or open view-source:. If the text is baked into an image, a PDF viewer, a canvas, or a video frame, take a screenshot and run OCR on it — either your operating system's built-in text extractor (macOS Live Text, Windows Snipping Tool, Google Lens), or a screenshot OCR browser extension. Nothing about copy-protection can survive a screenshot.

Why the page won't let you copy

There are only a handful of techniques a website uses to "protect" its text, and every one of them has a hole:

Below are five techniques ranked by how often they actually work, easiest first.

1. DevTools — copies text out of any user-select: none page in five seconds

This is the fastest fix for the most common case: the text is real HTML, the site just disabled selection.

  1. Right-click near the text you want (if right-click itself is blocked, press F12 on Windows or ⌘⌥I on macOS to open DevTools directly).
  2. Click the Elements tab.
  3. Find the paragraph or block that contains your text — hovering an element in the panel highlights it on the page.
  4. Right-click the highlighted node in the panel and choose Copy → Copy element or Copy → Copy outerHTML, then paste into any editor and delete the tags. Or double-click the text node directly to select and copy it as plain text.

DevTools reads the DOM, not the rendered page, so CSS user-select: none and JavaScript copy blockers have no say in what you take out. It doesn't help when the "text" is actually pixels.

2. View source — when you already know the phrase you're looking for

Type view-source: in front of the URL (or press Ctrl+U / ⌘⌥U). You get the raw HTML the server sent, which you can select and copy freely. Best for older static pages; on modern React/Vue sites the page you see is rendered by JavaScript after load, so view-source only shows the skeleton — fall back to DevTools.

3. Disable JavaScript for the tab — nukes copy handlers wholesale

Open DevTools → press ⌘⇧P (macOS) or Ctrl+Shift+P (Windows) → type "Disable JavaScript" → hit Enter → reload the page. Any script that was cancelling copy or contextmenu events is now off. Re-enable when done. Useful when a copy handler is generating fake text or clearing your clipboard — but it also breaks single-page apps that need JS to render, so don't rely on it as a first move.

4. Screenshot + system OCR — the universal answer for images, PDFs and video

When the text isn't real HTML — scanned documents, PDFs embedded in a viewer, video frames, canvas-based readers — the only route left is to capture the pixels and run OCR on them. Every modern OS ships this built in:

Built-in OCR is genuinely good in 2026. Reach for a browser extension when you want two things the OS tools don't give you: (a) a shortcut that works right inside the current tab without switching apps, and (b) OCR of areas you couldn't easily screenshot to a file first, like scrollable regions of a page.

5. A screenshot OCR browser extension — one keystroke, no app-switching

Full disclosure: ShotMagic is our own product. We built it because we kept hitting exactly this problem — protected pages, embedded PDFs, screenshots of dashboards we couldn't paste anywhere — and the app-switching dance of "screenshot → open in Preview → hover text → copy → tab back" was slow. An in-browser shortcut cuts it to one keystroke.

The design decision that matters for this use case: the OCR engine runs entirely inside the extension, on your machine. Nothing about the page you were reading — the one that presumably had a reason to make text uncopyable — leaves your device. Turn off Wi-Fi and it still works. If your alternative was Google Lens for a document you'd rather not upload, this is the swap.

Add ShotMagic to Chrome — free

For a broader comparison against Copyfish, Project Naptha and Selectext (including honest trade-offs), see our OCR extensions compared page.

Which one should you actually use?

A note on the ethics

Copy protection on public web pages is almost always dark-pattern noise, not a legal boundary — sites disable copy to keep users on the page longer, not because they have a right to your clipboard. But paid content, ebooks, licensed course materials and internal documents are different: the tools above work regardless of licence, and using them on material you don't have the right to redistribute is on you. A useful rule: if you'd copy it into your own notes and never share it, you're almost certainly fine. If you were about to publish it, get permission first.

Questions or corrections

Missed a technique that works better? Found a case where one of these fails? Email [email protected] and we'll update this page — it's only useful if it stays accurate.