Arcadia用recipe改良

Arcadia用recipe - MasaHeroの日記を改良した。というよりもテーブル組版でなくスタイルシート版を参照するようにした。

from calibre.web.feeds.recipes import BasicNewsRecipe

class Subscription(BasicNewsRecipe):
    u'Arcadiaの作品を読み込む'
    title = u'Arcadia作品'
    __author__ = 'Masahiro HASEGAWA'
    language = 'ja'
    encoding = 'utf8'
    timefmt = '[%Y/%m/%d]'
    remove_tags_before = dict(name='div', attrs={'id':'main_all'})
    remove_tags = [dict(name='div', attrs={'class':'container_termination'}),
        dict(name='div', attrs={'class':'h_amazon'}),
        dict(name='div', attrs={'id':'footer'}),
        dict(name='div', attrs={'class':'single_prevnext'})]
    remove_attributes = ['width', 'align']
    no_stylesheets  = True

    sid_list = None
    cmd_url = 'http://www.mai-net.net/bbs/sst/sst-lay-test.php?act=dump&all=%d'

    def parse_index(self):
        u"""記事一覧を取得する
        各記事の属性
        {
            'title'       : 記事のタイトル,
            'url'         : 印刷版のURL,
            'date'        : 発行日を示す文字列,
            'description' : 記事の要約,
            'content'     : 記事全体(省略可能)
        }"""
        result = []
        for sid in self.sid_list:
            s_result = []
            soup = self.index_to_soup(self.cmd_url % sid)
            sec = soup.findAll('div', attrs={'class':'tree_subject'})
            for s in sec:
                s_result.append(dict(title=s.a.string,
                    url="http://www.mai-net.net" + s.a['href'],
                    date=s.findNext('div',
                        attrs={'class':'tree_date'}).string[1:-7],
                    description='', content=''))
            result.append((s_result[0]['title'], s_result))
        return result

このクラスを継承してsid_listをセットしてやればOKです。