茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルプログラミング@つくば

はてなブックマークのAPIを使って、はてブのコメントと関連エントリーを取得する

投稿日:2016年1月13日 更新日:

本記事では、Python 2.7を使っています。
執筆から時間が経っており、情報が古い可能性があります。

こんばんは、okuzawatsです。
はてなブックマークは地味に使い続けているサービスの一つです。

Pythonとはてなブックマークエントリー情報取得API(以下、はてブAPI)を使って、はてなブックマークコメントと関連エントリーを取得してみようと思います。

はてなブックマークエントリー情報取得API

今回、はてなブックマークのAPIを叩くために使うのは、Python(2.7.5)、urllib2モジュール、jsonモジュールです。
はてなの開発によれば、

http://b.hatena.ne.jp/entry/json/任意のURL(この任意のURL では # を %23 にエスケープする必要があります) を GET リクエストで送信することにより、JSON 形式でデータを取得することができます。

ということです。
適当なページのURLを使って試してみます。

このページのURLを使って、はてブAPIを叩きます。
JSON形式で返ってくるので、返ってきたJSONをPythonのjsonモジュールで読み込みます。

これで、はてなブックマークのデータを扱いやすい形式で取得することができました。

取得したデータは、以下のような構造になっています。辞書型のデータ形式になっています。

  • count:はてなブックマークの数
  • screenshot:スクリーンショットのURL
  • title:記事のタイトル
  • url:記事のURL
  • related:記事の関連エントリーに関する情報
  • bookmarks:記事に付けられたブックマークに関する情報
  • entry_url:記事のはてなブックマークページのURL
  • eid:記事のID

さらに、relatedおよびbookmarksは内部にリストを持っています。それぞれ、

related:1エントリーにつき5個の要素を持つリスト。リストの要素は以下のキーを持つ辞書

  • count:関連エントリーに付けられた、はてなブックマークの数
  • url:関連エントリーのURL
  • entry_url:関連エントリーのはてなブックマークページのURL
  • eid:関連記事のID
  • title:関連記事のタイトル

bookmarks:1エントリーについているブックマークの数だけ要素を持つリスト。リストの要素は以下のキーを持つ辞書

  • comment:ブックマークコメント
  • timestamp:ブックマークの付けられた日時
  • user:ブックマークを付けたユーザーのはてなID
  • tags:ブックマークに付けられたタグ

Pythonを使って、これらの要素を抽出してみます。

JSON形式のデータは辞書型ですので、キーを使ってアクセスします。
一応、キーが存在するかどうかを確認して、キーが存在していたら要素にアクセスします。

こんな感じです。
"in"を使って辞書の中にキーが存在することを確認して、キーが存在した場合には処理を実行します。

relatedおよびbookmarksについては、前述のとおり内部にリストを持っていますので、for文を使ってアクセスします。
bookmarksの各要素に関するキー値の確認は省略。

こんな感じで、はてブAPIで取得したJSONデータを読んでいきます。
後の要素もだいたい同じ感じで読めるので、ここではコードは省略。

GitHubに最新版を公開しておきますので、興味がある方はこちらを見ていただいて、ついでにフォローやスターをしてもらえると嬉しいです!

はてなブックマークのAPIを叩いてブックマークに関する情報を取得するスクリプト on GitHub

よろしくお願いします!

あわせて読みたい本

-Python

Copyright© モバイルプログラミング@つくば , 2017 AllRights Reserved Powered by AFFINGER4.