Fork me on GitHub

laike9m's blog

Yuri Is Justice

Google

新坑开启,动画人物人名翻译助手计划

很早之前订了 StackExchage 的 Anime&Manga 周报,但是很多时候发现罗马音的人名根本就不认识,然后就只能去 google,一般会出现英文的 Wiki,点进去之后看见假名,但是又不认识,再去搜这个假名,运气好的话就有中文的网页了,这时候才知道人物的中文名,若是运气不好只搜出日文网页的话就得花更多时间,一般就不会再找下去了。经历了很多次这个过程之后终于觉得有些厌烦了。

只考虑动画的话,其实几十年内的主要角色也没有多少,一部中短篇作品里会被提到的名字估计平均也就十人左右。既然数据并不多,为什么不能都收集起来然后实现翻译的功能呢?做成类似输入法那样的界面,但是输入之后能出现对应的人名在其它语言中的写法,提供中文/假名/罗马音之间的互译,大概会很有用(并不

这篇文章希望能记录从开始到完成的过程,如果最终能完成的话...

第一步是收集数据。我发现 http://anidb.net/ 的资料比较全,而且又有 API,所以决定用它作为罗马音->日文的数据来源。但是看了下 API 的介绍发现限制很多,要 key 也就算了,最坑的是要把你做的客户端的链接给他,问题是东西都没有做出来哪有链接给它?再加上对请求次数啥的限制也比较严格,就不打算用 API 了,决定还是直接抓页面。

但是万万没想到 anidb 对爬虫的限制力度非常大,我模仿浏览器提供了所有 header 都被拒绝了,然后它还会把你的 ip 封禁掉。今天试了下用代理,又提供了 cookie,结果还是被封了,搞得我一点办法都没有。只能说它们的技术太厉害了。

如果还想从 anidb 抓数据,似乎只剩用 Selenium 及其类似物这条路了。因为以前没用过,所以得先学习一下。

14.10.14
今天试了试 selenium,访问是没有问题,毕竟是“真”浏览器访问。但是局限在于不能开多个 tab,只能开多个窗口。把每个 webdriver 放到一个单独的线程里似乎就可以让它们互不影响了。总之 selenium 这条路是可行的。

14.11.5
今天把页面上的两种名字的提取做了,发现 xpath 比 css-selector 好用不少。不过 selenium 的 xpath-selector 好像不支持把 text() 写进 query,只能之后通过 webelement 的 text 属性来获取某个元素的 text.

comments powered by Disqus

top