クローラー@動画サイトへの道

クローラーを作っていきたいと思います。
先のエントリで言ったPHPのクロールライブラリはインターバルが有効では無いみたいで、下手するとひとつのサイトに大量のリクエストが投げられそうな気がしたので断念。
ここからは他人に迷惑をかけそうなところなので慎重にいきませう。


で、システムですが
クロールしたファイルはとりあえずキャッシュする方向で、同時にDBにurlと共にmodifiedを保存しておきます。HTTPの HEADメソッドでmodifiedを入れれば200か304が返ってくるはずなので、それを元にDBを更新&キャッシュします。
…っとそんな感じで。
→キャッシュファイルを削除した時のDBとの同期処理は、後で書きます。
→って、単純にurlだけならurlエンコードしたファイルと更新日時合わせてキャッシュしたらいいのか…

とりあえず、wgetみたいに順次アクセスで実装します。
探索アルゴリズムは幅優先で。
深さ優先で実装すると無限ループしそうだし、チェックが面倒そうなので(汗


アクセスのしかたですが、
複数ドメインに同時接続。ただし、1つのドメインあたり1リクエストづつ順次アクセス。かつインターバル(3秒ぐらい)を設定する。的な?考えです。






(てってってー)
コーディグ中

file_get_contentsでHTMLを取ってこようとするとLocation先のサイトまでとってきちゃうので、fopenからヘッダ直打ちのほうがいいかな




今後:
違う話ですがサイトのページからタイトルを取ってきたい。それって単純にDLリンクを保存するだけでは判別できないので、なんとかしたいなー