Open Maecenas opened 4 years ago
你好,感谢你的支持哈!你是直接把 rss 文件修改校对了吗?因为我每次的流程是,我本地是有一个对应的 json 文件,这个文件暂时没有开源出来,然后每次更新,都是把新一集的内容抓取下来,增加到已有的 json 文件中,然后再将这份 json 文件渲染成 rss feed。 如果你是已经把现有的 rss feed 校对后,但如果下次更新,还是通过 json 文件渲染出 rss feed,那样你这次的校对结果就丢失了。
我想一下办法,希望保留你的校对结果,同时不影响后续的更新。
最后,再次非常感谢!
你好,我本地把这个项目跑起来了,也修改了一下抓取页内音频,可以生成马后炮、耳旁风的Feed。顺便记一下项目的工作流程,可能的话写在项目的README/文档里会更好:
生成output.json
fanPie/all_episodes.py
(全部节目)或者fanPie/update.py
(在main()
里定义的新单集)获取output.json
fanPie/fanPie/pipelines.py
、fanPie/fanPie/spiders/__init__.py
、fanPie/fanPie/spiders/episodes.py
和fanPie/fanPie/spiders/episode.py
const output_json: Array<FanpieFilmItem>;
interface FanpieFilmItem {
title: string;
episode: string;
film: string;
hosts?: Array<string>;
link: string;
shownotes: {
shownotes_original: string;
film_list_range?: Array<number>;
film_list_original?: string;
film_list?: Array<{
name: string;
time: string;
}>;
film_outline?: string;
film_scoring?: string;
};
url: string;
duration?: string;
pub_date: string;
}
从output.json
生成RSS
fanPie/feed_parser.py
从output.json
生成RSS,并由可选的helper.rss
补全部分条目这样会遇到一个问题:两步的结果都不太完美,有一些edge case比较难处理。如1. 在遇到EP076/EP068等会漏掉片单后的附加信息;2. 舍弃了原本的DOM结构,解析字符串总会有断句之类的问题。我目前的思路是:校对最终呈现的RSS,中间可能会为提高效率对项目做些改动。
然而这样也遇到了你提到的,在后续更新时如何保存校对结果的问题。我现在有两个思路:
helper.rss
latest.json
生成RSS,再把生成的xml并入现在的文件(channel.append(item)
)谢谢你的分享和维护!
更新RSS馈送标题/链接/配图/音频链接/持续时长/节目描述
$('meta[property="og:image"]').attr("content")
获取,但需要裁剪成正方形且分辨率不稳定