タグ

ブックマーク / emasaka.blog.fc2.com (3)

  • 本を読む 多段のP::P::CustomFeed::Simpleを試作

    [Plagger]パイプラインというエントリを読んで、そうそう、掲示板とかをPlaggerでスクレイピングするときに、トピック一覧ページと各エントリのページの2段階になってることがあるんだよな、と思った。 ただし私の場合、とりあえずCustomFeed::Configが多段になっていればいい。そこで、CustomFeed::Multistageというのを試作。 使いかたはPODのとおり。Subscription::Configのmeta:で、multistage:の中に各段のfollow_linkまたはfollow_xpathを並べる。まず1行目のfolow_*でCustomFeed::Simpleと同じように処理し、そこで抽出された各URLに対して2行目のfollow_*で処理し…と続く。理論上は何段階でも続けられる。 ただし注意が必要なのは、最終段の各ページごとにフィードが作られること

  • 本を読む 新着のみEFTする

    たまにPlagger、略して、たまPla(←東急田園都市線沿線限定) 「エントリ総数470件。これを毎回読み込むのはちょっと…(Ruleで何とか出来るのでしょうか)。」というエントリーを見た。 普通にDedupedをかけても、先に全部EFTしてからになる。そこで、いまのところ、こんな感じでいけるっぽい。 - module: Filter::Rule rule: module: Deduped - module: Filter::EntryFullText rule: module: Deduped ただ、なんでこれでうまくいくのかが謎(汗)。2回Dedupedしているので後から実行するほうは未読0になりそうなものだけど。

  • 本を読む Google Groupsの文字コードの謎

    Google GroupsではMLの新着がRSS/ATOMのフィードでとれる。が、Plaggerを使ってEFTで全文をとろうとすると、EFTではめこんだ日語が「?」になってしまう。 Plaggerのキャッシュを調べてみると、HTTPヘッダーやmetaタグやらでISO-8859-1が指定されている。文はUTF-8なので、そりゃdecode_contentで化けるわけだ。ただし、ブラウザーで見るとUTF-8と指定されて来るのがさらに謎。 そこで、LWPを使う簡単なPerlスクリプトを作り、パラメーターを変えて比較実験した。どうやらUser-Agentを見て指定を変えているようだ。そこで、PlaggerのYAMLのuser_agentでFirefoxのUser-Agent文字列を指定。Plaggerのキャッシュを一度クリアして試したら、無事全文が読めるようになった。 ちなみに、Encode:

  • 1