杉並区立図書館の、その日の新着図書が一目でわかるサイトを作ってみました。
公式ホームページでは、一ヶ月間の新着図書が一度に表示されます。でも、毎日チェックしている身にとっては、その日入った本だけが知りたい情報だったりします。
数百冊リストアップされている図書情報から、脳内で前日との差分を取り出すのも、なかなか骨の折れる作業です。こういった単調で、面倒な定型作業は、人間ではなく、機械の方が適任でしょう。
このサイトを作ったお陰で、一度に数分から十数分かかっていた手動によるチェック作業が、数秒に短縮されました。
更新情報は、RSSでも出力するようにしてあるので、直接サイトにアクセスしなくても、livedoor ReaderやGoogle リーダーのようなRSSリーダーでもチェックできます。
このサイトの利点
- チェック時間の短縮
- RSSリーダーでの購読が可能
- ページ移動のためのクリックが不要に(クリック数: 10回→0回)
- 新着図書の履歴を、過去までさかのぼれる
図書館側のメリット
新着図書をチェックしたいだけの利用者の方が非公式サイトを利用するようになれば、公式サイトへのアクセス負荷を軽減できます。RSSはFeedBurnerを介して配信しているので、高負荷になっても安心です。
杉並区立図書館のホームページは、たまに応答が遅くなったりすることもあったので、負荷軽減にもお役に立てるのではないかと思います。
仕組み
- Pythonの標準モジュール、urllib2でHTMLを取得。
- lxmlライブラリで、formの送信や、CSSSelectorクラスによるスクレイピング
- SQLAlchemyでSQLite3のデータベースにアクセスし、取得した図書情報がデータベースに無ければ、新着図書として記録
- PyRSS2Genを使って、RSS 2.0形式で出力
- サイトへのアクセスがあれば、PHPでデータベースから情報を読み込んで表示
以上の手順をcronに登録して、定時(10:00 AM)に自動実行しています。
lxmlによるスクレイピングの方法は、「Ian Bicking: a blog :: lxml: an underappreciated web scraping library」が大変参考になりました。lxmlは、RESTで取得したXMLデータをXPathで解析するために重宝していましたが、スクレイピングにも利用できるとは知りませんでした。cssselectメソッドが、すごく便利です。
まとめ
地域限定な、ちょっと便利なサイトですが、杉並区の図書館をご利用の方はお試しください。
Recent Comments