Closed jiaojiaodubai closed 10 months ago
https://github.com/jiaojiaodubai/translators_CN/commit/b8d57d30e332e007cd3ffefb403cd8b2800fb42a
Error: No title specified for item
debugItem.title = 'debug'.title
?
我没调通,总有getContentsAsync的Error: Unsupported type 'undefined' for source
报错。
另外,newItem.type = tryMatch(referText, /^%9 (.*)/m);
可以吗,很多文章没有%9
的样子。
%9
是在学位发现的,标注硕士论文或学位论文,原先参考的是这里,现在已经对照Refer/BibIX.js
的源码订正了一部分
@yfdyh000 又有了一些更新,现在这样默认空挂着debugItem
不保存应该可以避免你提到的错误。
我没调通,总有getContentsAsync的
Error: Unsupported type 'undefined' for source
报错。
这篇为例,建议用API引文的同时抓取网页上的关键词。
scaffold与网页抓取的表现似乎不太一样,scaffold内抓到了tags、没看到error,但网页抓不到、日志也看不到error。
'Failed to retrieve data from API: GetExport'
周边代码有误。requestJSON返回body内容,没有body、.data[2]等成员。
多重捕获之后避免了很多error,所以没有error应该是正常现象。
而表现不一样的原因是:原先从页面抓tag的代码写在scrapeDoc()
。脚手架中ShowExport
接口抓取错误直接退出到scrapeDoc()
抓取,可以抓到tag;而浏览器中ShowExport
接口就抓取成功了,因为服务器返回的结果中没有%K
标签,所以也就没有tag。现在我把抓tag移入fixItem
了。
GetExport
的问题已经修复,它的数据在data
而不是body
,感谢你的宝贵建议👍。 @yfdyh000
未来也许应该直接用"code": 200
值来判断返回结果的有效性。
LintIt分支的 CNKI.js
更新了接口,现在支持CNKI海外版了。#191 #244 #247
@OrlandoZh @Sofiaccch
现在的策略是海外版网站就用海外版的接口,国内版就用国内版的接口。
有个问题是:国内依然可以打开海外版的条目链接,这时应用海外接口肯定会出错的(除非你使用技术手段把IP换到海外),虽然会继续从页面抓取,但效果可能不太理想(特别是英文版的页面里,作者和机构常常混成一串)。所以建议大家再国内就用国内知网,在海外就用海外知网吧,别对着干。
海外知网我已经测试过www.cnki.net
、oversea.cnki
和chn.oversea.cnki
三个网站,都是可以抓取的,如果还有其它未适配的域名,欢迎告知。
拖拽海外知網下載的pdf文件(未更改過檔名)進入zotero,仍無法自動讀取父條目,如下圖:
是我這邊的配置問題嗎?
@jiaojiaodubai 更新后海外仍无法抓取知网。请问我需要做什么吗?
@Sofiaccch ,请确保使用Lintit里的最新版,而不是茉莉花更新的版本或Zotero内置版本。
@rong-fei 首先,茉莉花無法獲取父條目不一定是翻譯器的問題,你需要到茉莉花的倉庫反映問題。其次,我並不瞭解茉莉花匹配檔案的方式,但似乎跟文檔名有關係,有時我的文檔名中含有多餘的括號它就匹配不出來了。
推荐使用以下格式反馈翻译器问题:
你遇到了什么问题? [必填]
发生问题的链接 [必填] 在此填写链接
问题描述 [必填] 如:“作者”字段没有分开。
你的预期结果 如:“作者”名字应该分开。
浏览器
自查清单
附件 如Connector报错记录(建议粘贴代码格式):
[JavaScript Error: "No title specified for item
Error: No title specified for item
at Object._itemDone (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:609:32)
at Object._itemDone (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:89:17)
at Zotero.Item.complete (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:1:306)
at scrape (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:353:12)
at async doWeb (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:215:4)" {file: "[object Object]"}]
经反馈,海外知网和图书馆VPN访问已经可用
拖拽海外知網下載的pdf文件(未更改過檔名)進入zotero,仍無法自動讀取父條目,如下圖: 是我這邊的配置問題嗎?
这个是茉莉花插件的问题。你看一下你使用的Zotero和插件版本。目前我使用模板是标题_作者
的形式是可以正常抓取的。
经反馈,海外知网和图书馆VPN访问已经可用
测试成功的话,可以发个pr,合并起来!
@jiaojiaodubai 我看到新增好多 dbcode 与 itemType 的对应关系。 这个是从哪里查询到这些匹配关系
@jiaojiaodubai @l0o0
遇到问题:
无法下载附件
发生问题的链接 [必填] 在此填写链接 https://kns.cnki.net/kcms2/article/abstract?v=ZJxhFRRmSIh5pmNi5hlqbKr7mwfgoSCZMeRMoApX0h9mosDzEhtWqcXdSnT2211j4wpfuoPi_Jfh5XI7Q79EbFeO-SAwIbUy7kzXpYg4oxzaEbXJsayUMeox31aIlivrM-z9LHNXQuQ6W3OD83ZLVWguTD7Igb97&uniplatform=NZKPT&language=CHS
问题描述 [必填] 120版本后的chrome内核浏览器,谷歌和edge等无法获取文献pdf,个别极端情况所有浏览器均无法获取(知网自带下载能正常下载的情况下)
预期结果:获取到pdf
浏览器:120版本后的chrome内核浏览器,谷歌和edge 火狐通常能正常获取
自查清单 翻译器: 1.翻译器:11月30日版本和12月10日分支版本均尝试过 我已经按照教程将 2.我尝试过重启浏览器、Zotero或电脑 3.我使用校园网直接访问 4.非海外访问
附件 [JavaScript Error: "Failed to retrieve translators from Zotero Repo Error: HTTP request to https://repo.zotero.org/repo/metadata?version=5.0.114&last=0 rejected with status 0" {file: "chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/zotero.js" line: 306}]
@jiaojiaodubai 我看到新增好多 dbcode 与 itemType 的对应关系。 这个是从哪里查询到这些匹配关系
@l0o0 我当时在浏览器开发工具的“元素”面板Ctrl + F搜,没想到真让我搜出来了,在搜索结果的页面上方、指定搜索的类型的选项卡元素里😂
@OrlandoZh
无法下载附件
首先,Translator仅仅负责把下载地址提交给浏览器下载 ,下载过程中的任何异常与Translator无关; 其次,对于国内知网而言,附件下载地址也是动态的(和时间有关),这意味着在常久不操作的网页抓取的话,有可能导致翻译器引用了过时的下载链接。
发生问题的链接 [必填] 在此填写链接 https://kns.cnki.net/kcms2/article/abstract?v=ZJxhFRRmSIh5pmNi5hlqbKr7mwfgoSCZMeRMoApX0h9mosDzEhtWqcXdSnT2211j4wpfuoPi_Jfh5XI7Q79EbFeO-SAwIbUy7kzXpYg4oxzaEbXJsayUMeox31aIlivrM-z9LHNXQuQ6W3OD83ZLVWguTD7Igb97&uniplatform=NZKPT&language=CHS 浏览器:120版本后的chrome内核浏览器,谷歌和edge 火狐通常能正常获取
我会着手调查这个问题,如果使用最新版Translator测试时可以重现此问题,那么后续会跟进。
自查清单 11月30日版本和12月10日分支版本均尝试过 我已经按照教程
实际上,正如前面所说,翻译器对附件所做的事情非常有限,所以各版本之间并没有太大的变化,在调查清楚之前,你无需尝试更新的版本。
附件 [JavaScript Error: "Failed to retrieve translators from Zotero Repo Error: HTTP request to https://repo.zotero.org/repo/metadata?version=5.0.114&last=0 rejected with status 0" {file: "chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/zotero.js" line: 306}]
截图中显示的是你未能通过Connector的官方渠道成功更新Translator,与本问题无关。
我在LintIt更新了多条目抓取时获取附件链接的代码,修复了搜索页面批量抓取偶尔无法下载附件的情况。
@jiaojiaodubai 我看到新增好多 dbcode 与 itemType 的对应关系。 这个是从哪里查询到这些匹配关系
@l0o0 我当时在浏览器开发工具的“元素”面板Ctrl + F搜,没想到真让我搜出来了,在搜索结果的页面上方、指定搜索的类型的选项卡元素里😂
干得漂亮👍
代码已经合并到主线,遇到的问题请另发issue。
我在我的 LintIt 分支中对CNKI翻译器进行了比较大的重构,解决了一些历史遗留问题。但我不确定它是否能稳定工作,在正式合并到主线供大多数中文用户使用之前,我希望有人能帮我测试一下这个版本的CNKI翻译器,以便我继续改进它。
如何参与测试
CNKI.js
;CNKI.js
内lastUpdated
的时间调到较远的未来(如2024-12-30)以避免被茉莉花更新覆盖;CNKI.js
替换掉。如何反馈错误信息
如下图,在Connector中启用调试日志,运行一次抓取任务,然后返回Connector设置界面点击“View Output”刷新调试记录,把里面的日志发送到我的邮箱jiaojiaodubai23@gmail.com。 注意,先启用logging再抓取,先“view output”再复制记录。 如果你是校园网VPN/海外用户,我还需要了解你的网络环境应当以何种方式发送请求,你可以按照这篇小红书笔记 获取额外的调试文件发到我的邮箱 jiaojiaodubai23@gmail.com帮助我继续优化。
更新详情
target
,仅保留主域名部分。因为已经有detectWeb()
作进一步判断,这样为支持更多知网版本提供了基础;scrape()
含三种抓取方案,降低错误率。showExport
接口的请求格式改为 EndNote(即 Refer),因为知网的返回的 EndNote 格式比 RefWorks格式更接进相关格式标准,这样可以减少对反馈数据的清洗工作。id
重命名为ids
以反映内部有多个标识符,ids
作为全局变量使用(虽然原来就有变量提升)。ids
的任务交到scrape()
而不是getSearchResults()
。因为对于多条目而言,根据requestDocument()
返回的文档构造ids
更可靠。detectWeb()
加入monitorDOMChanges()
以等待搜索页面加载完成,有望解决#53。detectWeb()
对多条目的判断模式和getSearchResults()
筛选条目的方法,以支持期刊页面(#131 #71) 、旧版知网搜索(#79)。@tangxunding @zhengtao-777getIDFromSpaceURL()
为ids
赋值,以支持知网空间(#72 )。fixItem()
中增加对预印本的判断以支持网络首发(#145)。attr()
或text()
、innerText()
函数,并引进了tryMatch()
和label2Text()
以避免对undefined
调用字符串方法导致的异常。