補足です
秀丸マクロは、(Excel VBAと比べると劣るかもしれませんが)色々できます。
http://oxynotes.com/?p=3207
HTMLタグ削除&整形マクロ
http://hide.maruo.co.jp/lib/macro/tagdelete.html
対応するHTMLタグへの移動を行うマクロ
http://hide.maruo.co.jp/lib/macro/tagidou.html
特定の文字列をカウントするマクロ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1329246913
なので今回、実現したい内容としては
「hタグを抽出して整形する」
ができれば、あとは既存のマクロを利用、
または改良することで対応できるとは思います。
▽1
●
a-kuma3 ●1000ポイント ベストアンサー |
Bookmarklet でも良いということでしたので、書いてみました。
(function() { const d_ = document; Array.prototype.forEach.call(d_.body.querySelectorAll("script,style,noscript"), function(e) { e.parentNode.removeChild(e); }); const text = d_.body.textContent.replace(/\s+/g, ""); const count = text.length; const title = d_.title; const hx_list = d_.querySelectorAll("h1,h2,h3,h4,h5,h6"); const panel = d_.body.appendChild(d_.createElement("textarea")); panel.style.position = "fixed"; panel.style.backgroundColor = "white"; panel.style.border = "1px solid black"; panel.style.padding = "1ex"; panel.style.top = "0"; panel.style.width = "80ex"; panel.style.height = "20em"; function indent(tag) { let n = parseInt(tag.replace(/^H/, "")) - 1; let pad = ""; for (let i = 0 ; i < n ; ++i) { pad += "\t"; } return pad; } panel.value = [ "【文字数】", count, "\n【title】", title, "\n【hタグ】", Array.prototype.map.call(hx_list, function(h) {return indent(h.tagName) + h.tagName + ":" + h.textContent;}).join("\n"), ].join("\n"); })();
Firefox でしか動作確認をしていませんが、Google Chrome や Edge なら動くと思います。
はてなには、Hatena::Let という Bookmarklet をホスティングするサービスがあるので、そこにも置きました。
http://let.hatelabo.jp/a-kuma3/let/hJmfy_yqmbJ2
赤で括ったあたりを右クリックでブックマークしてください。
データを抽出したいページを表示した後に、ブックマークした Bookmarklet をクリックして実行してください。
質問で挙げられたページだと、こんな感じで抽出結果を表示します。
TEXTAREA で表示しているので、クリックして ctrl+A で全選択して、ctrl+C でコピーできます。
ありがとうございます!このBookmarkletをクリックすると左上に窓が出現しますが、これを閉じるにはタブを閉じるしかないのでしょうか?