はじめに
はてなの編集画面で、自分の記事一覧取得って、ない、ですよね。。。?(決まった件ごとの表示しか)
単純にtitleと投稿日、カテゴリぐらいを取得して眺めたいという思いがある(笑)のでやります。
まずは全ページを取得するシェルを書いてみましょう。
前回の記事で書いたものをちょっといじればいけますね。
ループ書くことと、停止条件がどうなるかを探る必要がありますね。
書いたスクリプト
#!/bin/sh # get first page curl --user take_she12:zitm8l85db https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry > /home/take/script/output1.xml page=`curl --user take_she12:zitm8l85db https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry | grep "link rel=\"next\"" | sed -e 's/.*page=\([0-9]*\).*/\1/'` num=2 # get next page loop while true do curl --user take_she12:zitm8l85db https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry?page=${page} > /home/take/script/output${num}.xml page=`grep "link rel=\"next\"" /home/take/script/output${num}.xml | sed -e 's/.*page=\([0-9]*\).*/\1/'` # page=`curl --user take_she12:zitm8l85db https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry?page=${page} | grep "link rel=\"next\"" | sed -e 's/.*page=\([0-9]*\).*/\1/'` num=$(( num + 1)) ## break if last page if [ "${page}" = "" ]; then break fi ## for safety if [ $num == 100 ]; then break fi done # get title tag i=1 while true do grep "<title>" output${i}.xml | grep -v "<title>ツナワタリマイライフ</title>" grep "<category" output${i}.xml i=$(( $i + 1)) ## break if last page if [ $i -eq $num ]; then break fi ## for safety if [ $i == 100 ]; then break fi done rm *.xml
これでtitle一覧は確かに取得できたんです。ただ、これ1ページごとのxmlを対象にgrepかけてるから、タイトルがずらーっと並んだ後カテゴリがずらーっと並ぶことになって、1記事に複数カテゴリつけることがあるから、あ〜〜〜詰んだ〜〜〜ダメだ〜〜〜ってなったので別の方法を考えることにしました。
ちなみに取得はこんな感じ。
<title>「脳が認める勉強法」から考える、自分にとってベストの勉強法</title> <title>日報をgitlabで管理すると結構いいよ</title> <title>ブログの記事ネタリストをtoodledoで管理する</title> <title>小銭貯金ソリューション、ついに計測完了した話</title> <title>node.jsでhello,worldする</title> <title>小銭貯金ソリューション、いよいよ両替するためにコインケースを買った話</title> <title>「システム思考をはじめてみよう」を読んで考える、努力や我慢をしない問題解決</title> <title>mongodbの薄い本を読んだ</title> <title>はてなブログの投稿予告ツイートをrubyで書く② 複数ページ取得&xmlマージ編</title> <title>新しい言語・フレームワークの学び方を議論した</title> <category term="本" /> <category term="教育" /> <category term="ソフトウェア開発" /> <category term="ソフトウェア開発-備忘録" /> <category term="ブログ" /> <category term="生活" /> <category term="ソフトウェア開発" /> <category term="ソフトウェア開発-node.js" /> <category term="生活" /> <category term="考え方" /> <category term="本" /> <category term="ソフトウェア開発" /> <category term="ソフトウェア開発" /> <category term="ソフトウェア開発-Ruby" /> <category term="ソフトウェア開発-シェルスクリプト" /> <category term="ブログ" /> <category term="ソフトウェア開発" />
どうでもいいけどシェルのwhileもforも使い勝手悪い。もっといい書き方ないですか。
atomuitl
せっかくatom形式で返ってくるんだからxmlで扱おうよ、いい加減ね、と思い検索した。
こちらの記事のまんまで見事に記事のタイトルと本文が取得できました。。。今までの時間はなんだったんだ感すごい。そう、私は愚か。
wordcloud
せっかくなのでワードクラウドやってみました。create→ファイルアップロードなり直接テキストぶちこむなり。
silversightをいれた上でsafariで見ました。chromeだとダメでした。
あんまおもしろくないな!(笑)
まとめ
今後はatomutil使って記事とカテゴリのリスト取得をやろうかな。rubyだし。