This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.
Downloading web resources
Last time I went to the dentist, they offered to use a fancy scanner to better be able to show me my teeth.
Who can say no to that? I already for fun got a 3D scan of my brain, so why not teeth too?
I requested the data, and got a link to a web UI. Unfortunately it was just a user friendly 3D viewer, without any download button.
Here’s how I extracted the 3D data:
- Open Chrome developer console, e.g. by pressing Ctrl-Shift-C (I hate it that Chrome hijacked this. Every single day I press Ctrl-Shift-C to copy, and it throws up this thing)
- Close the stupid “what’s new” spam, that nobody in the history of ever has wanted to see.
- Go to the ‘Network’ tab.
- Reload the page.
- Right click on any item in the list, and choose “Save all as HAR with content”. No, I don’t know why I can’t just save that one resource.
- A HAR file is a JSON file archive, essentially.
$ jq '.log | keys' foo.har [ "creator", "entries", "pages", "version" ] $ jq '.log | .entries[0].request | keys' foo.har [ "bodySize", "cookies", "headers", "headersSize", "httpVersion", "method", "queryString", "url" ] $ jq -r '.log | .entries[].request.url' foo.har [… list of the URLs …] $ jq -r '.log | .entries[4].response.content.text' foo.har | base64 -d > file.tmp $ file file.tmp Zip archive data, at least v2.0 to extract, compression method=store $ unzip file.tmp [… a bunch of .ctm files …] $ ctmconv Tooth08.{ctm,obj}