はてなブログの記事一覧URLを取得します。
調べるとPythonを使ってAPIたたいたり、GoogleAppScriptでスクレイピングしたりする方法が多いですが、Linuxのコマンドで実施します。
URLのもとは、エクスポートしたファイルを利用します。
ファイルの中身を確認
エクスポートしたファイルの中身(このサイトの場合はyatta47.hateblo.jp.export.txt)を見てみると、こんな構造になっています。
AUTHOR: yatta47 TITLE: Azureのポータルが英語になってしまったので日本語に戻した BASENAME: 2019/08/03/230501 STATUS: Publish ALLOW COMMENTS: 1 CONVERT BREAKS: 0 DATE: 08/03/2019 23:05:01 CATEGORY: Azure IMAGE: https://images-fe.ssl-images-amazon.com/images/I/51H2%2BUmoGvL._SL160_.jpg ----- BODY: <p>個人で使っているAzureの管理ポータルにログインしたところ、何かが変わったようで、メニューが英語になっていました。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/y/yatta47/20190803/20190803224607.png" alt="f:id:yatta47:20190803224607p:plain" title="f:id:yatta47:20190803224607p:plain" class="hatena-fotolife" itemprop="image"></span></p> : : :
BASENAME
にURL・・・というかパスが入っているので、そこをgrepで取り出します。
コマンドラインは以下。
$ grep "BASENAME" yatta47.hateblo.jp.export.txt | awk -F" " '{print "https://yatta47.hateblo.jp/entry/"$2}'
ちょっと補足。
grepでBASENAMEの行を取り出します。
その中で2列目のデータが欲しいのでawkで2列目を指定します。
そして、URL先頭がないので、それを手動で付け加えてあげてます。
こんな感じになります。
$ grep "BASENAME" yatta47.hateblo.jp.export.txt | awk -F" " '{print "https://yatta47.hateblo.jp/entry/"$2}' https://yatta47.hateblo.jp/entry/2019/08/03/230501 https://yatta47.hateblo.jp/entry/2019/07/21/124039 https://yatta47.hateblo.jp/entry/2019/07/18/200000 https://yatta47.hateblo.jp/entry/2019/07/20/221043 https://yatta47.hateblo.jp/entry/2019/07/19/090000 https://yatta47.hateblo.jp/entry/2019/07/20/134321 https://yatta47.hateblo.jp/entry/2019/07/01/204357
まとめ
簡単に取れるかなーと思っていたらPythonとかRubyとかプログラミングする記事が多かったので、もっとシンプルな方法がないかなーと思って結局Linuxコマンドラインにたどり着きました。
このあとはこのURLを使って、GoogleAppsScriptを使ってタイトル一覧を取得してみようと思います。