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

add (flk.npc.gov.cn.js) 新增国家法律法规数据库 #294 #302

Closed jiaojiaodubai closed 6 months ago

doubanchan commented 7 months ago

元数据正常抓取,pdf未能下载。

doubanchan commented 7 months ago

pdf下载部分,像case1,pdf的链接,默认的二维码下的链接是Word的链接,如果页面上有“公报原版”,点击该按钮后,扫描此时二维码下面的链接就会变成PDF的链接。

只有当页面显示“公报原版”才有pdf扫描版。在其他处看到的,每个条目该库有提供的API,比如case,对应API,从中也可以看到是否有pdf文本。

另外,网页右侧的“下载”按钮,默认同二维码扫描下载一样是doc/Word版本,自动下载;如果可以切换到“公报原版”,点击该按钮,则会跳转到pdf页面,不自动下载。

doubanchan commented 7 months ago

改善1 在此行前加 doc.querySelector('#gbdiv #gb').click();,模拟点击公报按钮,可以实现在有公报的情况下下载公报pdf。不知道是否需要做错误处理,似乎无公报也可以抓取,只是无pdf。 https://github.com/l0o0/translators_CN/blob/8d341eedc4cf8c26077c2c96887ea770d4f7430c/flk.npc.gov.cn.js#L112

改善2 url.includes('/detail2.html?') || url.includes('/detail.html?') || url.includes('/xf/html/') https://github.com/l0o0/translators_CN/blob/8d341eedc4cf8c26077c2c96887ea770d4f7430c/flk.npc.gov.cn.js#L40 比如case1,网址是detail无数字2;case2

jiaojiaodubai commented 7 months ago

改善1 在此行前加 doc.querySelector('#gbdiv #gb').click();,模拟点击公报按钮,可以实现在有公报的情况下下载公报pdf。不知道是否需要做错误处理,似乎无公报也可以抓取,只是无pdf。

感谢你的建议,根据以往的实践,仅下载而不关联条目,意义是不大的,我将会用你前面提到的api来实现附件下载。但我现在正在忙着写另一个新的转换器,所以前面这些没太顾得上。待到新的转换器pull上来,我会着手处理这些已提交的转换器。

doubanchan commented 7 months ago

我不知道如何调用API,模拟点击的话,我测试没有问题,一般也是关联到条目。另外几篇宪法和修正案似乎不适用上面的API。

我在又添加了一处注释,见 https://github.com/l0o0/translators_CN/commit/8d341eedc4cf8c26077c2c96887ea770d4f7430c#r137845272

jiaojiaodubai commented 7 months ago

已修复,请审查 @doubanchan

doubanchan commented 7 months ago

1、 detectWeb对宪法不适用,如case https://github.com/l0o0/translators_CN/blob/ac27958442ff7197e44f6939368cac09a48331c9/flk.npc.gov.cn.js#L40

2、 附件下载,网址前要加wb. https://github.com/l0o0/translators_CN/blob/ac27958442ff7197e44f6939368cac09a48331c9/flk.npc.gov.cn.js#L121

其他 我改的版本,可以下载文档且使用宪法

jiaojiaodubai commented 7 months ago

1、 detectWeb对宪法不适用,如case https://github.com/l0o0/translators_CN/blob/ac27958442ff7197e44f6939368cac09a48331c9/flk.npc.gov.cn.js#L40

感谢提醒,我之前没发现宪法的特别之处。

2、 附件下载,网址前要加wb. https://github.com/l0o0/translators_CN/blob/ac27958442ff7197e44f6939368cac09a48331c9/flk.npc.gov.cn.js#L121

已经加入代码中。

其他 我改的版本

实际上这里没有考虑click()之后的异步事件,如果网页加载较慢,可能会获取到错误的下载链接。

我进行了一点研究,普通法律是动态加载的,宪法是静态加载的。根据这一特点支持了宪法。

doubanchan commented 7 months ago

测试基本无问题 法律解释 司法解释(case1法宝)在北大法宝中记为“法律”,此处记作“报告”,是否需要统一? Word Word附件的下载地址和PDF地址不同,如行政诉讼法,对应API地址case1,如果要下载Word附件需要修改一下。

jiaojiaodubai commented 7 months ago

法律解释 司法解释(case1法宝)在北大法宝中记为“法律”,此处记作“报告”,是否需要统一?

记录为“报告”是参考了这里的讨论。难道是我理解有误?

Word Word附件的下载地址和PDF地址不同

了解,目前的策略是有PDF则优先下PDF,没有PDF的时候会下载Word

jiaojiaodubai commented 6 months ago

测试基本无问题 法律解释 司法解释(case1法宝)在北大法宝中记为“法律”,此处记作“报告”,是否需要统一? Word Word附件的下载地址和PDF地址不同,如行政诉讼法,对应API地址case1,如果要下载Word附件需要修改一下。

已更正