Yapra で Pixiv
Yet Another Pragger のテストを兼ねて、 Pragger で自作プラグインを使ってやった Pixiv フィードの生成 と同じことをやってみる。
Pixivにログイン
まずは、Yapra固有プラグインで Pixiv にログイン。
- module: Config::WebPost
config:
url: http://www.pixiv.net/index.php
params:
pixiv_id: yuanying
pass: password-dayo
Praggerで同じようなことできるプラグインを一応書いたには書いたんだけど、 Pluginクラスを勝手に拡張したりしてソースが汚かったんですよね。
CustomFeed
つぎに、FF11というタグのついたページから、 それぞれのイラストページのURLをひろってくる。
- module: Feed::Custom
config:
url: http://www.pixiv.net/search.php?s_mode=s_tag&word=FF11
extract_xpath:
capture: '//div[@id="pixiv"]/div'
split: '//li'
raw_link: '/a[1]'
apply_template_after_extracted:
link: 'http://www.pixiv.net/<%=/href="(.*?)"/.match(item.raw_link).to_a[1]%>'
thumbnail: '<%=/src="(.*?)"/.match(item.raw_link).to_a[1]%>'
抽出自体は extract_xpath の名の通り、XPath を使ってとってくる。
その後抽出した<a>タグから、apply_template_after_extracted をかけてやって、 リンクとサムネイルのURLを抽出してやる。
テンプレート自体は ERB で書いてます。
EFT
抽出したURLを開いて、本文やらタイトルをとってくる。
- module: Filter::EntryFullText
config:
extract_xpath:
title: '//title/text()'
dc_creator: "//div[@id='profile']/div/text()"
tags: '//span[@id="tags"]'
comment: '//div[@id="illust_comment"]'
apply_template_after_extracted:
content_encoded: '<img src="<%=item.thumbnail%>" /><p><%=item.comment%></p><p><%=item.tags%></p>'
ここもまた、そのページから XPath でタイトルやらコメントやらを抽出した後に、 apply_template_after_extracted でエントリ本文(content_encoded)を生成してる。
RSSの保存
最後はできたフィードを Pragger の標準プラグインで保存。
- module: RSS::save
config:
title: Pixiv - FF11
link: http://www.pixiv.net/search.php?s_mode=s_tag&word=FF11
description: FF11 Pixivにあがった画像
filename: 'ff11.xml'
こんな感じで Yapra用プラグインと Pragger用プラグインを混ぜて実行できます。
いやー動いた動いた。ヨカッタヨカッタ。
Yuanying at 16時40分06秒 | Comments (0)
Comments