[求思路]求助 PDF 重命名功能实现的思路与优化

2019-10-03 20:21:56 +08:00
 12345tiger

背景:非计算机专业的


当前的工作流程:

当前存在的问题:


主要问题是以上 A-D,烦请各位大佬给个建议或者关键词,我自己去搜索

(另:尝试过所谓的性能分析工具,奈何非科班出生,专业背景欠缺完全看不懂。。。)

1576 次点击
所在节点    Java
21 条回复
redeemer1001
2019-10-03 20:36:42 +08:00
联网查询慢,那就多线程嘛。
B 问题,建议先检查一下硬盘是否健康……

其实如果不是要求即时获取结果,没必要太追求程序效率,再慢挂一晚上机睡一觉起来,不都搞定了。鲁棒性更重要。
favourstreet
2019-10-03 20:54:58 +08:00
一楼就说到了多线程……再一想楼主专业背景欠缺,哎呀……

B 问题,还有可能是文件系统被塞撑到了。

多线程还不够快就多进程,去什么什么云上开他几十个虚拟机跑
7Sasuke7L
2019-10-03 21:02:48 +08:00
我一般是下载好后,自己重命名,我感觉这个项目有难度。因为有些 pdf 没有标题,或者是有些 pdf 是扫描文件,甚至有些 pdf 的标题不是你要的标题。而且你的提取会有一定的几率不准确,到头来还得自己修好不准确的部分。比如我是数学专业,有些标题会带有数学字符,这些是无法加入命名的
also24
2019-10-03 21:28:58 +08:00
问题是否可以换一个角度来解决呢?
例如写针对 ACS 网站的爬虫,这样就可以知道文件是从哪个页面下载下来的,从而补充上相应的信息。
这样有一个额外的好处是可以保证信息的准确度。
whatIsGhost
2019-10-03 21:45:40 +08:00
为什么不直接丢进 endnote 或者 zotero 来解决这个问题呢?其中 zotero 可以直接重命名文件
12345tiger
2019-10-03 21:58:26 +08:00
@redeemer1001 多线程对小量的数据提升有效吗?查询返回的结果小于 10k,多线程不是对大文件才有效吗?
12345tiger
2019-10-03 21:59:08 +08:00
@favourstreet 在本地 pc 上使用,搬到云端应该不行。。
12345tiger
2019-10-03 22:06:16 +08:00
@7Sasuke7L 是会存在正确率的问题,大约能有 70 左右。之前也是手动自己搞,但是有时文献量有点大,而且手动重命名很难做到一直保持一直的规范
@also24 这个不太现实。。。数据库过大(千年以上,主要是 SCI 数据库),而且现在就是去 crossref.org 接口查数据库
@whatIsGhost 用过 endnote、mendeley、docear、zotero 等文献管理软件,虽然可以重命名但是需要转移到软件指定文件,丧失了原有的文件目录结构。对以上都不是很满意,就自己一直靠文件目录来管理文献,然后就想通过写入 PDF 文件的方式来存储 citation 信息。
jugelizi
2019-10-03 22:38:06 +08:00
网络消耗当然是靠多个任务同时运行(在网站未做单 IP 限速的情况下,否则就考虑代理了)
性质和爬虫是一样的
redeemer1001
2019-10-03 23:14:19 +08:00
@12345tiger 同时发起多个 Http 请求查多个文件的数据。你是不是理解成多线程下载文件了……
noqwerty
2019-10-04 01:50:48 +08:00
@12345tiger endnote 的话就不用操心这些了呀,插参考文献,管理和检索 PDF 都方便很多。感觉你这个写到最后也就是重新造了个轮子。
diggerdu
2019-10-04 02:00:13 +08:00
zotfile 可以直接按元信息重命名
AFuture
2019-10-04 02:02:44 +08:00
readcube……
pyder
2019-10-04 09:55:44 +08:00
写了个 gist: https://gist.github.com/ipudu/b72031f84a0e6cfdf6626a791f8fe380

如果文章从 ACS 这些地方下载,里面就包含了 DOI 的。

没有错误处理,对于很新的文章不适用(没有 volume, 没有 page number。。。)

放到 bash loop 里,可以改多个文章。
12345tiger
2019-10-04 11:40:56 +08:00
@jugelizi
@redeemer1001
的确是我理解错了,当前还只是单文件的功能,多文件查询会考虑多线程查询的,谢谢指教
12345tiger
2019-10-04 11:54:32 +08:00
@noqwerty 谢谢推荐,endnote 的确能做到信息检索并 rename,但是需要按照 endnote 中的 group 进行分类,所有的 PDF 也会被 endnote 重新 copy 到指定目录。不知道你有没有体验过十几层的文件夹,数十个项目,数千篇文献( PDF )还有数百个 PPTword 和其他文件。。。endnote 的规则太过机械。所以迫不得已只好自己造轮子啊。。
@diggerdu 感谢推荐,只浅尝辄止试过 Zotero,zotfile 其实满足了我 80 以上的需求,但跟其他软件一样会 copy 一份新的文件到其软件目录。发现网上有一个跟我一样的想法的需求(依靠 zotfile 老版本 bug 实现?)
https://forums.zotero.org/discussion/68517/zotfile-renaming-linked-files-but-not-moving-them
@AFuture 感谢推荐,but readcube 好像存在同样的问题,而且当年试用 readcube 直接把我电脑卡出屎了。。
@pyder 非常非常感谢大佬的代码,只是我的需求有点复杂,而且不仅仅是 ACS 数据库的文章,其他 RSC wily 等文章没有这么直接的嵌入信息啊,大佬是化学的?
pyder
2019-10-04 23:20:22 +08:00
rsc,wiley 这些我测试过了,都是有的,只是 just accepted 和 asap 这些不行。
pyder
2019-10-04 23:32:03 +08:00
@12345tiger 我是做计算的,😄
chensheng1
2019-10-04 23:36:24 +08:00
为什么不写个脚本迁移 endnote 重命名后的 pdf ?
12345tiger
2019-10-05 12:47:11 +08:00
@pyder 是我表述不严谨,rsc wiley 等大出版商的文献信息比较全,但还有些其他小出版商的杂志,或者上古时代的文献缺少内嵌的信息。想着一次全给解决了😄

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/606187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX