Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

番组补完计划 #11

Open
weizhenye opened this issue Mar 19, 2017 · 7 comments
Open

番组补完计划 #11

weizhenye opened this issue Mar 19, 2017 · 7 comments

Comments

@weizhenye
Copy link
Member

bangumi-data 原先的数据维护模式,是每一季度手动添加各站新番,虽然工作量人工维护还算能承受,但仍显疲惫,况且对旧番组就力不从心了。

两个月前我翻看了各站动画列表才意识到,像乐视总共就 470 部,搜狐、AcFun、腾讯视频、芒果tv 等也就几百上下,优酷土豆有三四千,B 站番剧 id 接近 6000,可能算是最多的了。实际上,把各站动画爬一边全部添加是可能的。

于是就诞生了番组补完计划。首先是要有每季度番组的 meta 信息,这部分已经做好了自动化,由 Bangumi Data Helper 爬取 http://cal.syoboi.jp/quarter/ 的数据,目前已经添加到 1990 年;其次是获取各站所有的番剧列表,这部分不难,在各站的列表页遍历一遍拿到 id 和标题;最后是将爬到的列表添加到对应的 JSON 里,这个是比较麻烦的。对于标题一模一样的,可以直接添加,只要注意少部分特例就好,这样差不多可以自动添加 50% 的番组。剩下 50%,我想不到什么好的方法来自动处理,模糊匹配不知道怎么做,另爬放送日期也只能作为辅助判断,所以都是人工判断添加的。

等各站数据都添加完后,番组补完计划可以进入第二阶段。对于数据的更新,就把该站全爬一遍,filter 掉已经存在的,剩下的不符合的番组(如 xx 合集版)存到 exclude 列表,也 filter 掉,再剩下的就是该站新添加的番组,这样维护的话会比较便捷。

目前,我已经补完了不少站点,还剩 pptv、优酷、土豆、B 站未添加。之后还考虑添加 nico、crunchyroll、Amazon Anime Strike、Netflix 等海外站点。

在补完过程中,发现了一些问题以及待讨论的事项:

  • 在爬取全站添加的时候,除了标题完全匹配,有无其他匹配方案?
  • 腾讯视频的专辑页面,如 https://v.qq.com/detail/o/oesitw7dajrcifs.html,目前是使用 o/oesitw7dajrcifs 作为 id。实际上,把前面的 o 换成 [a-zA-Z0-9] 不影响链接的正确性,比如 https://v.qq.com/detail/x/oesitw7dajrcifs.html 也能到达专辑页面。而且腾讯视频相关的 API 中也是 oesitw7dajrcifs 作为 id 的,是否更换?(我是倾向于更换的
  • 各站的剧场版、OVA 还是不少的,可能要重新考虑一下 剧场版支持 #1,目前未做区分直接当做普通番组放进去了。不过剧场版缺少一个获取 meta 信息的方案,cal.syoboi.jp 没有剧场版数据。
  • 像 B 站和优酷专辑页面,没有实际的各集视频,PPTV 有些也只有 PV 和 CM,有些仅列出其他站点的播放源。考虑到现在各站也在购买旧番,说不定哪天就买了,那这些是否应该添加?该如何区分?
@arition
Copy link
Contributor

arition commented Apr 1, 2017

关于剧场版我这里 MikanProject/bangumi-data 已经开始维护了,可以参考这里的数据。meta信息是从萌娘百科爬的,我找下来应该是当前最适合的数据源了。

@GPBeta
Copy link

GPBeta commented Oct 6, 2017

不知道是否有计划新开一个维护用的前端项目? 方便用户可视化共同编辑维护?

@wxt2005
Copy link
Member

wxt2005 commented Oct 7, 2017

@GPBeta 感觉需求不大啊?

@GPBeta
Copy link

GPBeta commented Oct 7, 2017

主要是直接改 JSON 对我们这种代码小白来说不友好, 难以实现普通肥宅的共同维护 (

@weizhenye
Copy link
Member Author

@GPBeta

我之前想过,可视化编辑,提交后由 bot 自动发 PR,但流程太过简化后,怕一些无意义的提交或 spam,不知道怎样算一个合理的平衡点。

目前一部分维护工作可以由 bdh 自动化,对我来说需求确实不强烈。

我对当前的数据结构有个想法,就是大部分字段都默认值为 null,比如 official,有些站点自动化拿不到数据,自动填了 false 之后就不知道这个值对不对了,默认为 null 的话可以之后人工填写。这样可视化编辑的作用可能会稍微大一点。

@weizhenye
Copy link
Member Author

weizhenye commented Feb 19, 2020

https://github.com/manami-project/anime-offline-database

发现这个项目,可以考虑吃掉 AGPL 许可,吃不掉。

@yqwu905
Copy link

yqwu905 commented May 22, 2022

在爬取全站添加的时候,除了标题完全匹配,有无其他匹配方案?

您有试过例如Levenshtein等字符串模糊匹配的方式吗?我在一些番剧上测试过效果还好,您可以考虑一下。
希望不算挖坟(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants