l0o0 / translators_CN

Zotero translator中文网页抓取翻译器🎉This is Zotero translators for Chinese Sites(beta), not the official Zotero repo
GNU Affero General Public License v3.0
4.03k stars 523 forks source link

知网转换器拆分与重构 #309

Closed jiaojiaodubai closed 6 months ago

jiaojiaodubai commented 7 months ago

比较大的更新,秉承“先立后破”的原则,先把知网的子网站做出来了,为知网的Endnote导出格式定制了专门的import translator,以后知网子网站使用API抓取时只需调用这一核心进行解析。子站点拆分出来后写起来更灵活,不必考虑干扰其它站点的代码。

知网主站的解耦仍需些时日(一直加功能,代码已经堆积成山了)。

麻烦大家审查测试。@doubanchan @l0o0 @zepinglee

jiaojiaodubai commented 7 months ago

前面提到的问题已经修正

doubanchan commented 7 months ago

CNKI Scholar.js 学位论文 两篇学位论文(cast1case2),因外部链接失效或超时无法抓取。 图书 case中的2024年图书,DOI:DOI Not Found,无法抓取 图书章节 case,好像超时未抓取

jiaojiaodubai commented 7 months ago

学位论文 两篇学位论文因外部链接失效或超时无法抓取。

已经修复。

图书 无法抓取 图书章节 好像超时未抓取

我尝试捕获这个错误并进行处理,但item未能保存,我在已有转换器代码中未能找到处理被呼叫转换器之异常的例子,需要到dev group求助😢。

jiaojiaodubai commented 7 months ago

已修复

CNKI Scholar.js 学位论文 两篇学位论文(cast1case2),因外部链接失效或超时无法抓取。 图书 case中的2024年图书,DOI:DOI Not Found,无法抓取 图书章节 case,好像超时未抓取

jiaojiaodubai commented 7 months ago

CNKI主站的转换器已经提交上来,请审查。

为了给特定站点提供更具有针对性的抓取方案,以后的想法是:

  1. 对于页面相似,但dbcode不同的子站,我们尽量通过转换器内调用的方式来使用CNKI.js解析数据,代码案例见CNKI CHKD.js
  2. 对于页面不相似,数据请求接口也不同的子站,我们使用为知网导出格式定制的CNKI Refer.jsCNKI RefWorks.js来解析接口返回的数据,基于页面元素的离线抓取方案则在相应转换器内另写,代码案例见CNKI Industry.js
  3. 对于外文数据库,调用CNKI Scholar.js,代码案例见CNKI.js以及CNKI CHKD.js

仍有许多子站未适配,其中大多数可以归为CNKI Industry.js,特征为详情页面的链接以inds开头,剩下的站点等用户提issue再做吧。

image