RunLocalTools

Page Image Link Extractor

Right-click, “Save image as”, repeat forty times. Or open the page source, search for “.jpg”, and discover that half the pictures are not in the source at all. Modern pages hide their images in lazy-load attributes, responsive srcset lists, CSS backgrounds, social-sharing tags and JSON blobs, which is why a simple search misses so much. This extractor reads all of those places and gives you one clean, de-duplicated list of every image the page uses.

You paste the page’s HTML, or drop in a saved file. The parsing happens in your browser, and the pasted page is never run: no scripts execute and no images load from it while it is being read.

Three ways to get a page in

  • Paste the source. Press Ctrl+U (Cmd+Option+U on a Mac) on the page, select all, copy, and paste. Add the page’s address in the Page URL box so relative links such as /img/logo.png become full URLs.
  • Add saved files. Drop in one or more .html, .xml, .css or .md files. Several files merge into one list, and you can filter by which file an image came from.
  • Fetch a live URL. Tick the consent box and enter an address. This is the only mode where anything leaves your browser: the address is sent to this site’s server, which downloads the page for you. It sees the page as served, before JavaScript runs, and it cannot fetch pages over 2 MB or private network addresses.

Sites that build their pictures with JavaScript look nearly empty in view-source. For those, use the “copy page HTML” bookmarklet from the side panel: drag it to your bookmarks bar, click it on the finished page, then paste the result here. It records the page’s address, so relative links resolve correctly.

Everything it looks for

The list covers regular image tags, every candidate inside srcset and picture elements (with the largest marked), lazy-load attributes such as data-src and data-original, CSS backgrounds in style attributes and style blocks, favicons and touch icons, social-share images from Open Graph and Twitter tags, video posters, images named in structured data, links pointing straight at image files, inline SVG and embedded data: images. It can also scan inline scripts and JSON for image URLs, which is how images buried in framework data are found. Beyond HTML, it reads image sitemaps, RSS and Atom feeds, CSS files, Markdown and plain lists of URLs.

Cleaning up the list

Real pages are noisy, so the defaults hide tracking pixels, tiny placeholder images and all but the largest srcset size. One click groups resized copies of the same picture, such as WordPress “-300×200” thumbnails or “?w=” variants, and keeps the biggest. You can filter by format, by where the image was found, by host, by minimum width, or with plain words (put a minus in front of a word to exclude it), then sort by name, format, host or size. Tick individual rows to export only those.

Thumbnails are off by default, because showing them means contacting each image’s server. Switch them on when you want to see the pictures and check which links are dead.

Getting the files

Copy the URLs, or download them as a text list, CSV or JSON. For the files themselves, export a curl script, a PowerShell script or an aria2 list and run it on your own computer; file names are cleaned and duplicates renamed. Markdown and HTML tag exports are there for content work. A ZIP option tries to fetch everything from the browser, but sites only allow that when they choose to, so expect some blocked downloads. The tool reports exactly which ones and offers a script for those.

Once you have downloaded a batch, the Duplicate image finder catches copies that differ only by file name, and Compress shrinks the heavy ones before they go anywhere.

Common situations this solves

  • Content migrations. Moving a blog to a new platform and needing every image URL from the old pages, with alt text noted alongside.
  • Image SEO checks. A built-in audit counts images with no alt attribute, alt text that is just a file name, missing width and height, and older formats, with examples to fix.
  • Checking social previews. The og:image and twitter:image entries show up in the list. To see how the card will actually look when shared, open the OG / social preview checker.
  • Finding embedded pictures. Data: images are listed and can be saved individually. If you have a raw base64 string instead of a page, the Base64 → File Reconstructor turns it into a file.
  • Design and competitor research. Grab the icons, hero images and logos a page uses, at their largest declared size.
  • Archiving before a redesign. Export a list of every asset a page depends on.

Frequently asked questions

Why does it find fewer images than I can see on the page? Source shows a page before JavaScript runs. If the pictures are added later, they are not in it. Use the bookmarklet, or DevTools: right-click the html element, then Copy, then Copy outerHTML.

Why is it not a one-click “download all”? Browsers block reading most images from other websites. The scripts avoid that limit because they run on your computer, and the ZIP option works only for hosts that allow it.

Does it upload the pages I paste? No. Pasting and dropping files is processed locally. Only the optional fetch mode sends an address to the server, and only after you tick the consent box.

What are relative links, and why does it ask for a Page URL? Many pages say /img/a.jpg instead of a full address. Without the page’s address there is no way to know which site that path belongs to. A base tag, canonical link or the bookmarklet’s header can supply it automatically, and the tool says where it took the address from.

What happens with huge pages? A source over 25 MB is refused, and very large pages take a few seconds to read. Long lists show 100 rows at a time, with all of them included in exports.

Are inline SVGs and data images included? Inline SVG elements are counted but hidden by default, since a page can hold dozens of icons. Turn them on to list and save them. Data: images can always be saved from their row.