一种绕过限制下载论文的思路

* 本文作者:tammypi,本文属FreeBuf原创奖励计划,未经许可禁止转载

注:本文下面的内容仅讨论绕过思路,作为技术交流之用。大家下载论文还是应该通过正规渠道,付费下载,尊重各位站长的劳动成果。敏感图片和代码中涉及站点的内容均已打码。

有时候要研究技术,我们也需要下载一些论文来看看的。一些论文站点,虽然提供预览功能,但是下载却是收费的。

举个例子,如下站点:

当我们点击“同意并开始全文预览”按钮时,是有一个弹出窗口来预览论文的。

但是当我们点击“下载”按钮时,却提示需要收费。

一方面它单篇论文的收费实在是挺贵的;另外一方面,我们可能更倾向于把论文批量下载到本地,等到有时间时慢慢读完。这该怎么办呢?

我们F12看看预览页面的内容:

可以清晰的看到,id=”pdf”的div下的每个子节点div对应着论文的每一页,而每一个子div中包含的img标签对应的图片则是每一页的内容。我们将img标签的src中的链接复制出来,粘贴在浏览器的新页签中,其实是可以看到本页论文内容,而右键“保存图片”是可以将此页论文保存到本地的。

以上就是手动绕过限制下载论文的思路。但是有的论文页数实在太多,手动逐个复制链接下载实在有些效率低下,所以我们可以写个脚本来提升效率。

脚本主要步骤如下:

1.根据传入的关键字(keyword字段),模拟搜索请求;得到与该关键字相关的论文的标题以及url

2.打开论文对应的url,此时的页面还不是真实的论文全文页面;定位到预览关键字段cid(在javascript:viewLogin.viewDl()方法中),发送请求,得到论文真实全文页面的对应的url

3.由于论文预览采用了逐步加载的模式,即最初显示3页,然后随着滚动条的拖动再逐渐加载后续内容;所以使用selelium模拟滚动页面内容,判断是否有新页面被加载出来,直至页面内容不再发生变化为止

4.此时基于第三部加载出的全部页面内容,提取img字段,逐个保存到本地;即对应着论文的每一页

脚本运行效果如下:

得到的论文:

如果网络效果不是很好,可以适当将sleep时间延长。跑个脚本吃个饭回来,论文都下好了,还是很爽的。

* 本文作者:tammypi,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

MatlabR2014a 安装破解详细图文教程(附下载链接(内附CVX工具箱))

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据...

3397
来自专栏字根中文校对软件

JcJc人工智能错别字校对系统API(网站错别字检查)

JcJc人工智能错别字校对系统API - 网站错别字检查 中文校对软件 http://cuobiezi.net/zigen_jiaodui.html App...

5075
来自专栏后端云

compute node ha 主流开源实现

nova evacuate和热迁移很像。都是想实例从一个节点转移到另外一个节点。区别主要是热迁移在正常状态下进行的,疏散时在异常状态下进行的。用一个形象的比如就...

2023
来自专栏AILearning

TensorFlow架构

我们设计了TensorFlow进行大规模的分布式训练和推理,但它也足够灵活,以支持新机器学习模型和系统级优化的实验。 本文档描述了使得这种组合规模和灵活性成...

4167
来自专栏小白课代表

无需PS 一键编辑、压缩GIF。

微信公众平台规定GIF图不得超过2M,但是一张清楚的时间长的动图录制出来怎么可能那么小呢!还有聊天的时候,看到好玩的动图想要添加到表情,然后。。。

4551
来自专栏吉浦迅科技

DAY91:阅读Programming Model

我们正带领大家开始阅读英文的《CUDA C Programming Guide》,今天是第91天,我们正在讲解Unified Memory Programmin...

961
来自专栏维C果糖

GitHub 主页介绍及修改个人信息

接着「敲开 GitHub 的大门 - 注册账号」一文的内容,我们继续往下介绍: ? 标注 1:View profile and more,更多选项视图; 标注 ...

2247
来自专栏phodal

前后端分离之领域模型的思考

我们总以为前后端分离之后,我们就可以写出更干净的View。然而,现实并没有那么美好。因为在我们的View层里,不仅仅只有Template,还有Controlle...

2035
来自专栏云时之间

基于百度翻译的简单爬虫翻译-- coding:utf-8 --访问网址模拟浏览器创建文件夹用一个text文件保存,文件名用单词名字

因为最近有数据需求,自己写了一个简单的小爬虫,但是这是第一版还是比较简陋,慢慢更新吧. ---- 能够实现的功能是查询英语单词和中文单词并且能够找出读音来,希望...

3257
来自专栏IT技术精选文摘

LVS集群的负载调度

1. 前言 本文将主要讲述在负载调度器上的负载调度策略和算法,如何将请求流调度到各台服务器,使得各台服务器尽可能地保持负载均衡。文章主要由两个部分组 成。第...

2459

扫码关注云+社区

领取腾讯云代金券