万方数据库,文献下载的准备
###后来文献下载任务完成了 ,相关的代码,细节,介绍看这篇文章 https://www.jianshu.com/p/134530b46a65
想批量下载万方数据库的文献,看了一下其html源码不好玩啊.
其一篇文献的下载的链接.
<onclick="upload('4','hwjs201802015','chi','WF','Cs、O激活对GaAsP光阴极光谱响应特性的影响','0','perio')" id="ddownb" class="read"><i class="icon icon_down" title="下载"></i>下 载</a>
图片.png
js代码太多,upload()函数,我还没有找到....
onclick 事件
onclick 事件会在对象被点击时发生。
请注意, onclick 与 onmousedown 不同。单击事件是在同一元素上发生了鼠标按下事件之后又发生了鼠标放开事件时才发生的。
语法:onclick="SomeJavaScriptCode"
找到了upload函数。
/*下载*/
function upload(page_cnt,id,language,source_db,title,isoa,type,resourceType){
/* var user = $("#user").val();
if(user == "{}"){
getloginurl("ALL");
}else{*/
title=window.encodeURI(window.encodeURI(title));
var type = $("#document_type").val();
if(type == "standards"){
type="standard";
}
window.open("/search/downLoad.do?page_cnt="+page_cnt+"&language="+language+"&resourceType="+type+"&source="+source_db+"&resourceId="+id+"&resourceTitle="+title+"&isoa="+isoa+"&type="+type);
/*}*/
}
/*在线阅读*/
function onlineReading(page_cnt,id,language,source_db,title,isoa,type,resourceType){
/* var user = $("#user").val();
if(user == "{}"){
getloginurl("ALL");
}else{*/
title=window.encodeURI(window.encodeURI(title));
var type = $("#document_type").val();
if(type == "standards"){
type="standard";
}
window.open("/search/onlineread.do?page_cnt="+page_cnt+"&language="+language+"&resourceType="+type+"&source="+source_db+"&resourceId="+id+"&resourceTitle="+title+"&isoa="+isoa+"&type="+type);
/*}*/
}
以Spectral Efficiency and Power Allocation for Mixed-ADC Massive MIMO System这篇文献为列子,起下载事件为。
<a onclick="upload('16','zgtx201803009','eng','WF','Spectral Efficiency and Power Allocation for Mixed-ADC Massive MIMO System','0','perio')" id="ddownb" class="read"><i class="icon icon_down" title="下载"></i>下 载</a>
点击下载,获取了一个url, 好像随机生成hash值
先用浏览器访问下url,如果可以得到数据,就可以使用requests的get方法,如果不能就使用post方法
万方数据库一页显示20也结果
<input type="hidden" id="pSize" value="20">
<!-- 分页参数 -->
搜索页的url
http://www.wanfangdata.com.cn/search/searchList.do?searchType=all&showType=&searchWord=cd&isTriggerTag=
http://www.wanfangdata.com.cn/search/searchList.do?searchType=all&pageSize=20&page=2&searchWord=cd&order=correlation&showType=detail&isCheck=check&isHit=&isHitUnit=&firstAuthor=false&rangeParame=all
http://www.wanfangdata.com.cn/search/searchList.do?searchType=all&pageSize=20&page=3&searchWord=cd&order=correlation&showType=detail&isCheck=check&isHit=&isHitUnit=&firstAuthor=false&rangeParame=all
搜索的结果在strong标签中.
找到<strong>168533</strong>条结果。<br> </div>
根据关键字key和总结果可以构建出总url.
总共的页数已经得到了,但是js卡注了,不知道怎么生成相关的下载hrfe。已经根据这个文件,下载下来相关的pdf文档了。
urlretrieve(url, filename=None, reporthook=None, data=None)
试一试这个函数,可以把url下载到本地。
参考文献
python的requests在网络请求中添加cookies参数
Python学习日记12|用python3多进程批量下载pdf文件
Python 爬虫如何获取 JS 生成的 URL 和网页内容?
- Java数据结构和算法(十三)——哈希表
- Java数据结构和算法(十二)——2-3-4树
- UDF编程操作实现
- GitHub敏感信息扫描工具
- Java数据结构和算法(九)——高级排序
- Java数据结构和算法(十一)——红黑树
- Entity Framework Core 之数据库迁移
- 常见Web源码泄露总结
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
- ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)
- 【weakfilescan】敏感文件扫描工具
- ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)
- ASP.NET Core中使用IOC三部曲(一.使用ASP.NET Core自带的IOC容器)
- CVE-2017-11882漏洞复现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Logback配置文件这么写,TPS提高10倍
- 重学数据结构之队列
- 太简单,springboo 使用自定义的 Tomcat
- 没想到,几行代码,你就可以实现图片压缩(springboot)!
- Go 语言学习之基础数据类型
- Go 语言学习之变量
- Go 泛型的括号选择:[ ] or ( )?
- 如何使用GitLab CI/CD 触发多项目管道
- 使用docker数据卷持久化容器数据
- 面向初学者的Docker快速入门指南
- TypeScript:React、拖拽、实践!
- 太慢不能忍!CPU又拿硬盘和网卡开刀了!
- 懂了!VMware/KVM/Docker原来是这么回事儿
- CPU明明8个核,网卡为啥拼命折腾一号核?
- 2020-07-22-腾讯云-slb-kubeadm高可用集群搭建