- 序言
- requests请求出现的问题
- selenium代码分析
- JS下载代码解析
- 总结
序言
截至本文发布,在金山文档网页版中,如果需要同时下载2个及以上的文件,则必须开通会员。很容易想到可以编写爬虫逐一下载文件以达到批量下载的目的。
通过抓包可以发现这并不复杂,任意选取一个文件并点击下载,监听XHR下的数据包,可以捕获到如下的关键数据包:
图1 单个文件加载数据包响应结果
上图右侧响应结果中的url字段即为文件下载地址,注意该下载地址并不需要处于登录状态,任意状态下都可以访问下载(但是存在有效期)。
那么这个事情就很简单,我们来看一看这个数据包的请求字段:
图2 单个文件加载数据包请求字段
如图中标注的那样,上图请求URL中只有两个可变字段:groupid与fileid,groupid很容易直接从当前页面的URL中就可以读到。fileid则有很多方法可以读取,事实上当前页面源代码中某个


