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:
user-select: nonein CSS. The text is still real HTML — the browser just refuses to let you highlight it. DevTools ignores this rule.- A
copyorcontextmenuevent handler in JavaScript that cancels the action. Disable JavaScript for the tab and it evaporates. - Text rendered as an image, canvas or SVG — common on scanned PDFs, infographics, and older Chinese/Japanese news sites. There's no HTML text to copy; you have to OCR the pixels.
- Text rendered inside a video or an embedded PDF viewer. Same story: no selectable HTML, screenshot + OCR is the answer.
- DRM'd content (paid ebook readers, some enterprise viewers). Legally and technically the strictest — the screenshot route usually still works but respect the license.
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.
- 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).
- Click the Elements tab.
- Find the paragraph or block that contains your text — hovering an element in the panel highlights it on the page.
- 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:
- macOS 13+ Live Text: press ⌘⇧4, drag over the text, open the screenshot in Preview, hover the text — a selection cursor appears and you can copy. Works offline. Language coverage is decent for Latin scripts, weaker on CJK.
- Windows 11 Snipping Tool: press Win+Shift+S, drag, and click the Text Actions button in the resulting screenshot — extracted text with a Copy button. Also offline.
- Google Lens (Chrome right-click → "Search image with Google") uploads the image to Google and returns extracted text. Fast, accurate, but not offline and not appropriate for content you shouldn't send to a third party.
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?
- Article text you can see but can't highlight: DevTools (1). Five seconds.
- Old static page, want to grep the source: view-source (2).
- A copy handler is doing something aggressive (fake text, cleared clipboard): disable JavaScript (3).
- Scanned PDF, image, video frame, canvas reader: system OCR (4) if you're at a screenshot-friendly moment; screenshot OCR extension (5) if you want a single keystroke inside the browser and don't want the image to leave your device.
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.