[Python][Django] ウェブスクラップブックscrapbook_django 0.1公開

はじめに

ソーシャルブックマークを使用していると、以下の点が心もとなく思います。

  • ブックマークしているURLが、記事を指すURLかどうか。ブログのトップページのように、内容が変わるページのURLをブックマークしてしまうと、あとで参照するときに目的の記事を表示できなくなります。
  • ブックマークしているページが、永久に存在するか。ページが削除されると、当然のことながらもはや参照することはできなくなります。

これを解決するために、ウェブ上にはページをキャッシュするサービスがありますが、ページをキャッシュしてそれからブックマークするというのは、手間がかかります。

また、私は以下の要望も持っていました。

  • ログインしなければ見れないページも、自分の手元に保存しておきたい。

以上の問題を解決するために、ウェブスクラップブックを開発しました。

特徴

ウェブスクラップブックは、以下の特徴を持っています。

  • ブックマークするURLを保存すると同時に、ページをキャッシュします。これにより、もし閲覧するときに、ブックマーク先がブックマークしたときと異なっていたとしても、以前のページを参照できます。
  • ページを取得する際に送信するクッキーを指定することで、ログインしなければ閲覧できないページもキャッシュできます。ただし、この機能はセキュリティ上問題となる可能性があります。下の「注意事項」を参照して下さい。
  • はてなのアカウントでログインできます。このシステムを使用するために、新たにアカウントを作成する必要はありません。また、試用のためのデモユーザも用意されています。
  • PythonのウェブアプリケーションフレームワークDjangoで作られています。

URL

以下のURLからアクセスできます。

注意事項

このシステムを使用する際は、以下の点に注意して下さい。

  • キャッシュしたページを公開することができますが、著作者の許可を得ていないページを公開するのはご遠慮ください。このシステムのご利用は、個人の範囲内でお願いします。
  • ページを取得するときに、指定されたクッキーをサーバに送信できますが、セキュリティの分野では、第三者が個人を識別する符号(この場合のクッキー)を横取りして、その個人になりすましてアクセスすることを「セッションハイジャック」と呼びます。もし、このシステムに悪意のあるコードが含まれていたら、あなたになりすまして相手のサーバを攻撃することも可能です。このため、セキュリティに不安のある方は、クッキーを入力しないで下さい。

制限事項

今現在、このシステムは以下のことができません。

  • フレームのページを正しくキャッシュすることができません。
  • スタイルシートに対応していません。スタイルシート自体はキャッシュできますが、スタイルシートの中で指定されている画像などをキャッシュすることができません。
  • bodyタグのbackground属性で指定されている画像ファイルをキャッシュできません。

ソースコード

このシステムのソースコードは、以下からダウンロードできます。