l0o0 / translators_CN

Zotero translator中文网页抓取翻译器🎉This is Zotero translators for Chinese Sites(beta), not the official Zotero repo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

国家标准信息公共服务平台无法抓取

lychichem opened this issue · comments

你遇到了什么问题? [必填]

  • 无法识别条目
  • 无法保存条目
  • 无法下载附件
  • 缺少字段、字段错误
  • 其他

发生问题的链接 [必填]
https://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D7CBAAD3A7E05397BE0A0AB82A

问题描述 [必填]
报错如下:
image

你的预期结果
应能正常使用此转换器保存
浏览器

  • Chrome(谷歌浏览器)
  • FireFox(火狐浏览器)
  • Edge
  • Safari
  • 其他

自查清单

  • 我已经按照教程将翻译器更新到最新版
  • 我尝试过重启浏览器、Zotero或电脑
  • 我使用VPN访问
  • 我使用校园网直接访问
  • 我在海外访问

附件
如Connector报错记录(建议粘贴代码格式):
Connector的报错记录

[JavaScript Error: "cells is not defined
ReferenceError: cells is not defined
    at new CellLabels (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:127:15)
    at scrape (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:79:15)
    at doWeb (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:73:9)
    at Zotero.Translate.Web.rest (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1340:49)
    at chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1325:39" {file: "[object Object]"}]

[JavaScript Error: "cells is not defined
ReferenceError: cells is not defined
    at new CellLabels (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:127:15)
    at scrape (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:79:15)
    at doWeb (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:73:9)
    at Zotero.Translate.Web.rest (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1340:49)
    at chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1325:39" {file: "[object Object]"}]

[JavaScript Error: "cells is not defined
ReferenceError: cells is not defined
    at new CellLabels (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:127:15)
    at scrape (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:79:15)
    at doWeb (eval at <anonymous> (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/inject/sandboxManager.js:63:4), <anonymous>:73:9)
    at Zotero.Translate.Web.rest (chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1340:49)
    at chrome-extension://nmhdhpibnnopknkmonacoephklnflpho/translate/translation/translate.js:1325:39" {file: "[object Object]"}]

@lychichem 我也使用Edge,但未能复现你的问题。#291 报道过类似的问题,你和@doubanchan 的使用环境可能存在某些共同的特殊之处。
image

使用CellLabels类获取数据的还有国家标准全文公开系统国家版本馆(需注册登录),麻烦你们核实一下,是不是后面这两个网站抓取时也会出现JavaScript Error: "cells is not defined这一句报错?

在有充分的证据证明这是代码bug之后,我才能着手进行修复。

@lychichem 我也使用Edge,但未能复现你的问题。#291 报道过类似的问题,你和@doubanchan 的使用环境可能存在某些共同的特殊之处。 image

使用CellLabels类获取数据的还有国家标准全文公开系统国家版本馆(需注册登录),麻烦你们核实一下,是不是后面这两个网站抓取时也会出现JavaScript Error: "cells is not defined这一句报错?

在有充分的证据证明这是代码bug之后,我才能着手进行修复。

他的测试用例我也会报错,但是同样的标准在国家标准全文公开系统能正常工作,你给出的国家版本馆的连接也能正常抓取,从我这里的表现我认为确实是单一的转换器问题.

我对照过了,两处CellLabels的代码是一样的,不过国家标准信息公共服务平台这个转换器在使用CellLabels时有一点不一样,我需要检查来自你们的.mhtml文件才能进一步判断。

我对照过了,两处CellLabels的代码是一样的,不过国家标准信息公共服务平台这个转换器在使用CellLabels时有一点不一样,我需要检查来自你们的.mhtml文件才能进一步判断。

那么这个文件如何导出呢?我不知道怎么弄,要是能弄出来的话还请前辈修了

那么这个文件如何导出呢?我不知道怎么弄,要是能弄出来的话还请前辈修了

在浏览器打开抓取失败的页面,Ctrl+S保存,格式选“单个文件”或“mhtml”

那么这个文件如何导出呢?我不知道怎么弄,要是能弄出来的话还请前辈修了

在浏览器打开抓取失败的页面,Ctrl+S保存,格式选“单个文件”或“mhtml”

国家标准 - 全国标准信息公共服务平台.zip
github不让直接传mhtml所以只能套个壳了,页面就是我首条的测试页面,麻烦前辈看一下了

我检查过了,关键的页面元素跟我这里看到的一致,且CellLabels的代码也我提到的另外几个转换器一模一样,我不知道是什么原因造成了此问题。加QQ群893963769联系吧。

@doubanchan 你现在能稳定复现这个问题吗?如果可以的话,麻烦获取一些调试信息吧。

@lychichem 重新下载一下该转换器的js代码试试,我发现下载的js文件这行代码中缺失了 let cells=,理论上不应该出现的。重新更新之后好了。你先看一下电脑本地上这个文件中是否缺失了这个。

let cells = Array.from(doc.querySelectorAll(selector)).filter(element => !element.querySelector(selector));

@lychichem 重新下载一下该转换器的js代码试试,我发现下载的js文件这行代码中缺失了 let cells=,理论上不应该出现的。重新更新之后好了。你先看一下电脑本地上这个文件中是否缺失了这个。

let cells = Array.from(doc.querySelectorAll(selector)).filter(element => !element.querySelector(selector));

我知道为啥了……这个是函数bug,已经被修了,但是我一直用茉莉花的检查更新,但修bug的时候没修更新日期和版本号所以茉莉花认为没更新……

抱歉诸位,是我的锅🤡