本文主要是介绍一次性下载CVPR/ICCV/ECCV会议所有论文并提取论文标题重命名pdf文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转自:https://blog.csdn.net/lcz200/article/details/80813988
动机
计算机视觉领域会议近年来论文接收数量暴增,论文多得看不过来。偶尔想起来,会兴致勃勃去下载个几篇看看。但每次看都要去官网下载,挺麻烦的。为何不直接把论文全部爬下来,有空时直接翻出来看?这篇博客要干的就是这个事情。
说明
以防万一有同学看到最后发现该博客解决不了自己问题,这里先说明一下,以下的所有操作都是在ubuntu下进行的,windows下不能直接用,但是可以参考一下。
具体操作
1. 写脚本,爬论文。
说到写爬论文脚本,有些同学可能会觉得有点麻烦。其实爬某个网页下的指定格式的文件并不麻烦。比如cvpr 2018年的论文所在网站为http://openaccess.thecvf.com/CVPR2018.py,这个爬论文的脚本只需一行代码:
wget --level=1 --recursive --no-parent --accept pdf,PDF http://openaccess.thecvf.com/CVPR2018.py
直接将这行代码贴在终端中运行或者将这行代码写在一个.sh脚本中运行都可以。运行完后会在当前目录下生成一个目录"openaccess.thecvf.com",cd进去看会发现所有的论文都在“openaccess.thecvf.com/content_cvpr_2018/papers ”目录中了,相关的补充材料也会被一并爬下来,保存在“openaccess.thecvf.com/content_cvpr_2018/Supplemental ”目录下。执行ls命令会看到所有的论文都下载好了。
但是有个问题很烦人,就是pdf文件的名字并不是我们想要的论文标题。难道我们每次想看论文时都得打开一个pdf来看这篇文章是干嘛的吗?更好的方式当然是直接从pdf文件名就能看出论文大概讲的是什么东西(比如做detection的文章大多题目都会有detection这个字眼),这样我们可以随心所欲地选择自己想看的主题相关的论文。
2. 提取论文标题,用它重命名pdf文件
由于要获取pdf标题,这边需要先装一下叫PyPDF2的东西,安装方法很简单:
sudo pip install PyPDF2
安装完后,将下面的代码负责到rename_pdf_using_title.py文件中,运行即可:
import osfrom PyPDF2 import PdfFileWriter, PdfFileReaderfrom shutil import copy2src_dir = '/home/XXX/download/cvpr2018_papers/openaccess.thecvf.com/content_cvpr_2018/papers'des_dir = '/home/XXX/download/cvpr2018_papers/openaccess.thecvf.com/content_cvpr_2018/papers_new'if not os.path.exists(des_dir):os.makedirs(des_dir)if os.path.exists(src_dir):dirs = os.listdir(src_dir)for dirc in dirs:pdf_reader = PdfFileReader(open(os.path.join(src_dir, dirc), 'rb'))titlec = pdf_reader.getDocumentInfo().titleif titlec.find('/')!=-1: #文件名中的斜杠'/'会和目录标识符冲突,因此将其转为'-'print(titlec)titlec2 = titlec.replace('/','-')print(titlec2)titlec = titlec2copy2(os.path.join(src_dir, dirc), os.path.join(des_dir, titlec) + '.pdf')else:print("Dir does not exist!")
运行完后到des_dir下ls一下,可以看到所有的pdf文件都命名好了:
希望对喜欢屯paper的同学有点帮助。
这篇关于一次性下载CVPR/ICCV/ECCV会议所有论文并提取论文标题重命名pdf文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!