zoukankan      html  css  js  c++  java
  • 三峡大学学位论文下载

    三峡大学学位论文下载

    每一位硕士研究生毕业时,都要将其论文上传至图书馆学位论文库中。如果该学生选择公开该论文,那么作为校内研究生的你将获得免费阅读该论文的机会。

    但是,图书馆仅开放了在线阅读的功能,并不支持下载!这给我们后期的反复阅读带来了麻烦,因此为了解决这个问题,我编写了一个能够自动下载,并自动生成带目录的pdf的论文下载器。

    本项目所设计的论文下载器是通过 selenium 实现的。这是一个用于前端测试的 Python 库,可模拟网页上的各种操作。使用 reportlab、PyPDF2 对获取到的网页图片进行整合,生成 PDF 文件。

    使用方法

    配置环境

    首先配置 webDriver。
    安装 chrome浏览器,然后输入下面的网址查看浏览器版本:

    chrome://settings/help
    

    chrome版本

    然后,根据该版本号,去下载chromedriver:

    http://npm.taobao.org/mirrors/chromedriver/

    选择win32的zip

    解压后将其放置到chrome的安装目录下

    chrome的安装目录

    这样,就可以通过chromedriver来控制chrome了。

    这一步很容易出错,如果有问题,请多百度一下,主要是环境没配好之类的。

    然后,检查当前环境是否已经安装了以下库:

    • selenium
    • base64
    • tqdm
    • reportlab
    • PyPDF2
    • pillow

    使用 pip 命令安装即可。

    确定下载地址

    打开三峡大学图书馆学位论文库的远程访问地址(如果需要登录,请进行登录后再操作):

    http://210.42.41.117:8082/Thesis/ThesisSearch/Search_DataInit.aspx?dbid=6

    然后,搜索你需要下载的论文,打开在线浏览,得到类似下面的界面:

    复制该界面的网页地址即可。

    下载

    这里我写了一个叫做 paperDownload.py 的下载代码,里面包含了主要的功能函数,并进行了封装。
    在其中,你需要根据自己的情况,修改webdriver的配置情况:
    设置环境变量或者直接调用都可以:

    # driver = webdriver.Chrome() # 环境变量
    driver = webdriver.Chrome(executable_path=r"C:Program FilesGoogleChromeApplicationchromedriver.exe") # 直接调用
    

    配置好后,新建一个py文件,使用以下代码进行下载:

    from paperDownload import CTGU
    
    d = CTGU()  
    # 实例化一个学生用户,请在paperDownload设置一个默认的账号。
    # 如果出现用户登录失败的情况,则需要重新设置一个新的账号,
    # d = CTGU('新的学号','新的密码') 
    # 或者等待一段时间再使用,因为账号不支持多地同时登录。
    
    d.download(
       paperUrl='论文地址', # 上面复制的网页地址
       save_path="保存的文件夹", # 自己写一个保存的文件夹,他会自己创建
       category=True, # 如果在线浏览界面中存在目录,那就设置为True,否则为False
       sleep_seconds=8, # 睡眠时间自行把握,根据当前网速适当调整,设置的越大,下载越慢,但越不容易出错
    )
    
    

    运行后,你将在输出界面看到如下下载进度提示:

    下载完毕后,在你设置的文件夹中会得到一个src子文件夹,里面包括了论文的每一页图片,以及一个output.pdf,这个就是最终生成的带目录的pdf文件了。

    TODO

    所设计的这个论文下载器还存在很多的问题,如图片出现空白页、下载速度慢、仅支持上传格式为pdf的学位论文等,目前还没有得到很好的解决。

    另外,有机会想把它做成一个GUI界面,方便使用。

    © 版权声明
    文章版权归作者所有,未经允许请勿转载。
  • 相关阅读:
    由前序和中序遍历结果构建二叉树
    Java学习笔记数组与ArrayList
    Java学习笔记字符串
    Java学习笔记关于默认类型或访问权限的总结
    javascript学习笔记之事件和事件处理
    2010年2月1日学习笔记
    Web.config保存整个站点的设置
    ANT的十五大最佳实践
    配置ajaxToolkit的方法【转】
    Java学习笔记Iterator迭代器(Ps.instanceof的用法)
  • 原文地址:https://www.cnblogs.com/gshang/p/14664037.html
Copyright © 2011-2022 走看看