每季度我必须经常从150多个网站下载300多个pdf,而且我已经开始认为必须使用python自动执行此操作。这些PDF每季度发布一次,并详细说明共同基金在上一季度的表现。 90%的时间,这些PDF被称为季度评论'或者'评论',所以我想要做的是在python中编写一个脚本来搜索特定于基金的网址(https://www.pimco.com/investments/mutual-funds/total-return-fund/inst)以获取关键字'评论',找到该链接,然后下载生成的PDF文件。
我还想将下载文件命名为与正确的共同基金名称一致。现在我一直在努力的是一个excel电子表格。在A栏中,我有适当的共同基金名称。在B栏中,我有共同基金URL。
这可能吗?
答案 0 :(得分:0)
就我个人而言,我发现使用CaspjerJS和PhantomJS从外部网站下载文件更容易,因为您可以将javascript代码注入页面以获取所需的元素。
Here is the casperjs documentation
以下是我从教授网页下载讲座并将其下载到桌面的一些代码:
var casper = require('casper').create({verbose: true , logLevel: "debug" });
var url = "https://www.cs.rit.edu/~ib/Classes/CSCI264_Fall16-17/assignments.html";
var fs = require('fs');
casper.start(url);
var elements;
casper.then(function(){
elements = this.evaluate(function(){
var pdfs = document.querySelectorAll('body ul li a');
return Array.prototype.map.call(pdfs, function(e) {
return e.getAttribute('href');
});
});
for(var i = 0; i < elements.length; ++i){
var url = "" + elements[i] + "";
if(url.indexOf('pdf') !== -1){
var file = fs.absolute(url.substring(url.lastIndexOf("/")+1, url.length));
this.download(url, file);
}
}
});
casper.run(function() {
this.echo('Done.').exit();
});
当然,如果您在使用python时已经死定,那么完全忽略它。否则,祝你好运CasperJS脚本。