「冷凍みかん」のページ
「冷凍みかん」とは、複数のページの更新時刻を取得しそれをリスト化する、
いわゆる「アンテナ」です。
名前の通り、(よくもわるくも)なつみかんを意識して作っています。
- HTTPのHEADリクエストを発行し、Last-Modifiedフィールドから更新時刻を取得できます。
- HTTPのGETリクエストを発行し、コンテント中から(あるていど自動で)更新時刻を推測します。
さらに自動で取得できなかった場合は、サイトごとに細かく指定することが可能です。
- (「なつみかん」などの)他のアンテナからLIRSファイルを取得し、参考にします。
- LIRSファイルを保存し、他のアンテナへ情報を提供します。
- iso-2022-jp、EUC-JP、Shift-JIS (MS-JIS)、UTF-8、UCS-2の各文字コードでHTMLファイルの出力を行うことができます。
- 複数のファイルを出力することができ、ファイルごとに文字コードやフォーマットなどの設定が可能です。
- 各HTTPリクエストを並列に発行することで、高速化を企っています。
hina.txtやDI形式には対応していません。
誰かがperl moduleを書いてくれれば対応します:)
(0.5から対応しました。)
- おそらくUNIX(や、それに似たOS)でしか動きません。
- HEAD/GETリクエストの自動切り替えはできません。
GETリクエストを行った場合の、更新時刻の推測は行いません。
サイト毎に設定する必要があります。(0.4から対応しました。)
- サイズ変化による更新時刻の判定も行いません。
- ネットワークリソースを、やたら使います (並列だし)。
後者の4つは、CPANから取得するのがお手軽です。
詳しくはperldoc CPANを実行してください。
そのうち書きます。(「書かない」と同意語
1. CPANの使いかたを教えてください。
perldoc CPANを実行してください。
2. Can't locate LIRS.pm in @INC〜というエラーが出るんですが。
二つ原因が考えられます。
- 必要なモジュールがインストールされていない。
必要なものの項にあるモジュールを全てインストールしてください。
- fm.plのあるディレクトリで実行されていない。
一部のファイルをcwd(カレントディレクトリ)から読み込むため、必ずfm.plのあるディレクトリに移動してください。
3. たまに更新されないことがあるんですが。
どうやらbroken pipeが出ることがあるようです。
$max_hostの値を減らすことで改善するようです。
いくつに設定すればよいかは環境に依存します。
$ignore_broken_pipe=1を指定することで完全に無視することができますが、この場合の動作は保証できません。
4. Perl 4で動かしたいのですが。
試してませんが、間違いなく動かないはずです。
いまさら対応するつもりもありません。
Perl5から4への移植はC++のコードをCに移植するくらいの手間がかかるし、そもそもModuleが対応していないので。
どうしてもという人は下を見てください。
Yosuke MITSUMASU
Last modified: Sun Feb 23 11:56:41 JST 2003