仕事と晩飯とその他

日記です。

そもそも日付が入ってないんだよ。そして同一idはハードル高かった

Web連載更新情報RSSでは、「サイトでの連載記事の更新情報を収集してRSS化」するのが目的となる。サイトでRSS配信してくれてると簡単。でも、そうでないと更新情報をちゃんと得るのは意外と難しい。自分でやってみて「はてなアンテナなどの更新情報収集サイトがうまいこといかない場合がある」理由がよくわかった。こんなの一般化して収集とか、無理だと思う。Googleは全ページを取得するってことなんだろうけど、そは言っても連載記事の更新情報収集は難しいんじゃないかなあ。だって、サイトによって全然違うんだもん。しかも、記事の日付が入ってないとかザラだし。昨日今日は日付がないうえに記事が全て同じidで、しかも最新の記事を集めた目次ページはどうやら手作業で更新しているらしく、諸々不完全。しょうがないのでアーカイブのページから最新情報を取得しようとすると同一idの壁が。他にもフレームに近いような形で処理されているページなどもあって今だかつてないぐらいのハードルの高さ。

それでもなんとかかんとか最新記事のタイトルとURLの取得に成功。正規表現は諦めて文字列を区切り文字で配列として読み込んでから最後の文字列を取り出すという作戦が大当たり。これは他のでも使えそう。

日付についても、以前に作成したXMLを参照して記事のタイトルが同じだったら変更無し、記事のタイトルが違っていたら新しいものとして日付を更新、という処理でなんとかクリア。こちらも当初はsimplexml_loadで読み込んだXMLからXPATH関数で該当のノードの値を、などと考えていたが、RSSのタイトルに色々ぶちこんでしまったせいで余計に面倒になってしまったのでXPATHは諦めて馴染みのforeachとif文で。

楽しいなあ、プログラミング。本当に楽しい。