りょーちの駄文と書評:ユーザのはてなブックマークを全表示するスクリプトを作ってみたのだが、はてブユーザのブックマークの表示形式が「件数別表示」ではなく「日付別表示」になっているときは上手く動作しないっす。
はてなブックマーク全表示 では下記のよーなロジックではてブのエントリーを取得してます。
- はてブユーザ名を入力
- ユーザ名からはてブのURIを取得
- 取得した URI から php の TIDY 関数を利用し、 class="pager" の TIDY node を取得
- 取得した node 内にある A タグの href 属性を取得し配列に格納(これで全てのページのURIが分かる)
- 上記のhref属性から各ページのURIにアクセスし A タグの class="bookmark" を取得し、配列に格納
- 結果を表示
って感じなのだ。
で、感のよい方はお分かりだと思うが、日付別表示の場合、class="pager"の取得が上手くいかないので多分トップページのみの結果が表示されることになるだろう。
うーむ、理屈としては実装できなくもないが、全てのはてブエントリーページにアクセスしないと情報が取得できないため、ロジックは変更可能だが、実装時に問題が起こる。
それは日付毎のページに毎回アクセスする必要があるため、ネットワークのトラフィックがかなり増大することになる。
うーむ、なかなか難しいね。
ところで、はてブのフィードにはページング機能がついているので、そちらを利用されてはいかがでしょうか。
http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%D5%A5%A3%A1%BC%A5%C9%BB%C5%CD%CD
>ちょくちょく拝見しています
そ、そーですか。くだらない話題が多くで恐縮です(^^;
はてブのページング機能は確かに使えそうですね。
ただ、今気づいたのですが id:naoya さんなどは、
http://b.hatena.ne.jp/naoya/atomfeed?of=5000
と、とんでもなくブックマークされているよーなので、そうすると、5000回スクリプトを呼ばなきゃいけないってことなんですねぇ・・・orz
うーむ、そもそも何かりょーちのポリシーが間違っているよーな気がしてきました。
アドバイスいただきましてありがとうございます。
ではでは。
30件くらいまでは一度に読むことができそうなので、