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です。