自分が編集してきたキーワードの現在の内容をはてな記法で取得する

はてなから、週明けの月曜日に「k.hatena.ne.jp」以下の各種のページを閉鎖するという発表があった。

今までに自分がどんなキーワードを編集してきたのかわからなくなるのはちと寂しい。一覧を作った。

http://k.hatena.ne.jp/Imamura/modified?page=nn」というページをまとめてダウンロードする。「nn」はid:Imamuraで1から89、id:manpukuya(以前使っていたメインアカウント)で34までだった。「http://k.hatena.ne.jp/Imamura/modified?page=[1-89]」というURLをirvineに渡すと、1から89まで展開してダウンロードできる。編集履歴を一時的に「公開」にすれば、cookieを扱う必要もない。

f:id:Imamura:20191011141010p:plain

ダウンロードしたファイルは「copy /b *.* keyword.txt」で「keyword.txt」というテキストファイルに結合する。

その中からキーワード名とふりがな、カテゴリ、キーワードのURL、編集履歴のURL(http://d.hatena.ne.jp/keywordlog?klid=nn)を抽出した。ダウンロードしたファイル内の改行は「0x0A」と「0x0D+0x0A」が混在している。秀丸エディタで「改行を改行に置換」すれば「0x0D+0x0A」に統一できた。抽出したい内容を含む行とその前後はこんな感じ。

(…)

        <div class="keyword-list-blog">
          <h3 class="mykeyword"><a href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%AD%A1%BC%A5%EF%A1%BC%A5%C9">はてなキーワード</a><span class="furigana">はてなきーわーど</span><span class="category">(はてな)</span></h3>

(…)

              <tr class="hatena-star-entry">
                <td class="timestamp"><a href="http://d.hatena.ne.jp/keywordlog?klid=1715815" class="hatena-star-uri hatena-star-title">2018-04-07</a></td>

(…)

ここから、抽出したい行の行頭にユニークな文字(たとえば「㈱」や「∮」など)を置き、それが行頭にない行を全部削除した。続いて「<h3>~」などを正規表現で置換して下のような内容にした。

はてなキーワード はてなきーわーど http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%AD%A1%BC%A5%EF%A1%BC%A5%C9 はてな http://d.hatena.ne.jp/keywordlog?klid=1715815 http://d.hatena.ne.jp/keywordlog?klid=1609883 http://d.hatena.ne.jp/keywordlog?klid=1609205
はてなスクリーンショット はてなすくりーんしょっと http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%AF%A5%EA%A1%BC%A5%F3%A5%B7%A5%E7%A5%C3%A5%C8 はてな http://d.hatena.ne.jp/keywordlog?klid=1698816 http://d.hatena.ne.jp/keywordlog?klid=1063186 http://d.hatena.ne.jp/keywordlog?klid=727969
はてなダイアリー はてなだいありー http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%C0%A5%A4%A5%A2%A5%EA%A1%BC はてな http://d.hatena.ne.jp/keywordlog?klid=1730973 http://d.hatena.ne.jp/keywordlog?klid=1730972 http://d.hatena.ne.jp/keywordlog?klid=1730861

http://d.hatena.ne.jp/keywordlog?klid=nn」のURLが3つあるのは、キーワードの編集履歴のページでは1つのキーワードについて編集履歴へのリンクが最大3つまで掲載されているから。

ここから最新の編集履歴のURLだけを取り出し、まとめてirvineでダウンロードした。(※自分の編集履歴は14日に見られなくなるが、各キーワードの編集履歴は「d.hatena.ne.jp」のドメイン下なので14日以降も見られるはず)

f:id:Imamura:20191010144335p:plain

この中の「<meta property="og:title" content="~" />」にキーワード名(とその編集履歴の日時)がある。「<pre>~</pre>」の範囲には、キーワードの説明文がはてな記法で書かれている。具体例は下を参照。

(…)

  <meta property="og:title" content="はてなキーワード@20180407184544" />

(…)

    <div id="log-body" class="keyword-container">
      <div id="main">
        <div class="keyword-body">

          <pre>はてなのサービスの1つ。共有辞書サービス。はてなダイアリー/はてなブログの存在意義のひとつと言っても過言ではない素晴らしい機能。

(…)

*関連キーワード
- [[リスト::はてなのサービス]]</pre>

        </div>
      </div>

(…)

2019年」のような最近の年号キーワードはここ数年、ほぼ自分しか編集していなかった。キーワードの編集機能が再開されたとき、年号キーワードに書き込む内容をメモしてある。キーワードのもともとの内容がはてな記法で手元にあれば合成しやすい。プライベートな別ブログを立てて、そこに転記したりするつもり。