The Problem
I use a tool at work that lets me do queries and get back HTML tables of info. I do not have any kind of back-end access to it.
A lot of this info would be much more useful if I could put it into a spreadsheet for sorting, averaging, etc. How can I screen-scrape this data to a CSV file?
My First Idea
Since I know jQuery, I thought I might use it to strip out the table formatting onscreen, insert commas and line breaks, and just copy the whole mess into notepad and save as a CSV. Any better ideas?
The Solution
Yes, folks, it really was as easy as copying and pasting. Don't I feel silly.
Specifically, when I pasted into the spreadsheet, I had to select "Paste Special" and choose the format "text." Otherwise it tried to paste everything into a single cell, even if I highlighted the whole spreadsheet.
$("tr", "#table tbody").each())t = document.querySelectorAll('table')[0]; pre = document.createElement('pre'); t.insertAdjacentElement('afterend', pre); pre.insertAdjacentHTML('beforebegin', '<hr>'); pre.textContent = Array.from(t.querySelectorAll('tr')).map(tr => Array.from(tr.querySelectorAll('th,td')).map(c=>c.textContent).join("\t")).join("\n");. Will create a<pre>below the table itself that you can copy-paste wherever you need it.