ブログを始めたのは、今年の1月4日だ。今年は、およそ350記事を書いた。ほぼ一日に一本ブログを書いていたことになる。 自分の中では、今年の目標である「インターネットへのアウトプット」はある程度達成できるようになったと思う。 来年は、さらにインターネットへのアウトプットを強化して、例えばソフトウェアのプロジェクトとか、GNUのプロジェクトなどにも貢献できるようになりたいな。
はてなAPIを利用してブログの記事を取得する
はてなブログには、APIを利用してブログにアクセスできる仕組みがある。
はてなブログAtomPub - Hatena Developer Center
はてなブログには、rubyのgemを利用してアクセスをする。AtomPubを利用してみよう。
いろいろ見ているが、ブログを更新するためのAPIの例があるものの、タイトルやコンテンツの一覧を取得する仕組みってあまり説明されていない。 試行錯誤してみた結果、以下のようなプログラムになった。
#!/usr/bin/env ruby # -*- encoding: utf-8 -*- require 'atomutil' POST_URI = "https://blog.hatena.ne.jp/msyksphinz/msyksphinz.hatenablog.com/atom/entry" auth = Atompub::Auth::Wsse.new( username: 'msyksphinz', password: 'パスワード' ) client = Atompub::Client.new(auth: auth) feed = client.get_feed(POST_URI); out_fp = File.open("output.txt", "w") while feed != nil do entry = feed.entries entry.each{|content| out_fp.printf("%s\n", content.title) # out_fp.printf("%s\n", content.content) } if feed.next_link == nil then break else feed = client.get_feed(feed.next_link); end end out_fp.close
まずは、clientで、接続するためのインスタンスを作成する。
auth = Atompub::Auth::Wsse.new( username: 'msyksphinz', password: 'パスワード' ) client = Atompub::Client.new(auth: auth)
AtomPubのusernameの部分は、はてなブログのアクセスユーザネーム、passwordは、はてなブログの設定画面から「詳細設定」→「AtomPub」→「APIキー」から取得したものを設定する。
クライアントに接続すると、次にURLを利用してfeedを入手する。基本的にこのfeedの中に様々な情報が入っているのだが、これを一つづつ調べていくことになる。
entry.each{|content| out_fp.printf("%s\n", content.title) # out_fp.printf("%s\n", content.content) }
このとき、一度のget_feedでは全てのエントリを取得できない。従って、ある特定のエントリを取得したら、次のエントリグループを取得するようにする。
if feed.next_link == nil then break else feed = client.get_feed(feed.next_link); end
結果的に、ブログのタイトルの一覧を取得するのは以下だ。
entry.each{|content| out_fp.printf("%s\n", content.title) # out_fp.printf("%s\n", content.content) }
ちなみに、ブログの記事の内容を取得したければ、下のコメントを解除する。
とりあえずは、これにより、output.txtにブログの一覧が取得される。
... Vivado 2015.4 HLSを試す(チュートリアル Lab.3) Vivado 2015.4 HLSを試す(チュートリアル Lab.2) Vivado HLS 2015.4を試す (チュートリアル Lab.1) TensorFlowを使ってk平均法を実装する Visual Studio Codeがオープンソース化されたのでソースからビルド(しようとしたが上手く行っていない) Vagrantの環境でGUIを立ち上げるための環境構築 TensorFlowを使って分類アルゴリズムを実装する 自作ISSのRelease-6への対応を検討する(新規命令を実装する) 自作ISSのRelease-6への対応を検討する TensorFlowを使って多項式のフィッテイングを実装してみる(学習サンプル数と学習結果) TensorFlowを使って多項式のフィッティングを実装してみる TensorFlowによる基本的な演算についての勉強 Vivado 2015.3の新機能であるCore Containerについて調査 Imagination TechnologiesがMIPSのハイエンドコアプロセッサP6600を発表 機械学習初心者がTensorFlowのホワイトペーパを読んで勉強したことをまとめる(1) xv6のソースコード: mpmainから先を追い掛ける 機械学習初心者がTensorFlowのチュートリアルを勉強して分かったことをまとめる(3) ほぼ毎日ブログを書き続けて300エントリ到達。ブログを始めて変わったこと。 ...
取得したタイトル一覧から、ワードクラウドを作ろう
以下のサイトを利用した。日本語も利用できる! 使用するためにはJavaの利用できるブラウザが必要だ。Internet Explorerを利用した。
出来たワードクラウドは以下だ。やっぱり、実装や、勉強が多いね。来年は、もっと特定のワードに注力できればいいな。