CasperJS下载复制文件夹路径而不是下载指定文件

时间:2017-05-24 19:00:58

标签: javascript git download phantomjs casperjs

我不熟悉使用CasperJS和JavaScript。目前,我正在尝试学习如何从git repo下载文件。在阅读参考页面时,我偶然发现了CasperJS的下载方法。结果,我尝试了以下内容:

var casper = require('casper').create();
var url = null;
var utils = require('utils');
var http = require('http');
var fs = require('fs');

// A test to make sure that we can go into a github without any authentication
casper.start('https://github.com/gabegomez014/Test2', function(){
    this.echo(this.getTitle(), 'INFO');
});

// A test for how the download function works
casper.then(function(){
    url = 'https://github.com/gabegomez014/Test2/blob/master/.gitignore';
    var cwd = fs.absolute('.');
    var parent = fs.absolute("../");
    var path = cwd + parent;
    this.download(url, path);
});

// A test in order to get the current HTTP status of links that have been put into the function
// Attempt 3 works and cleaner
casper.thenOpen('https://github.com/gabegomez014/Test2/blob/master/.gitignore', function(){
    var res = this.status(false);
    this.echo(res.currentHTTPStatus);
});

问题在于,它不是仅仅将文件下载到指定路径的计算机,而是复制部分目录路径,该路径与创建的绝对路径相同(也没有内容)。我不知道我做的事情是不是错了(我只能这么做),或者是什么,但有人可以帮助我吗?

P.S。 :以另一种方式下载这些文件会更容易吗?因为如果有必要,它将完成。提前感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

好吧,经过长时间休息并回到它之后,我意识到这是一个很容易犯的错误。首先,我将两个绝对路径连接在一起,这就是它将目录复制两次的原因。

在下载文件方面,我了解到我不需要在CasperJS中指定方法的路径,而是将它放在当前的工作目录中。但是在添加隐藏文件时要小心,因为正如您所知,它们已被隐藏。例如,我下载了一个.gitignore,因为它被隐藏了,直到我完成后才能看到它..." ls -a"在我正在做这个工作的目录的终端内。

我还想说,即使我为文件或.txt指定了.java这样的某个扩展名,这个方法也只会下载HTML,所以如果你想在git repo中关联实际文件,你就可以# 39;我必须做一些我目前仍在寻找的事情。这是修复代码:

var casper = require('casper').create();
var url = null;
var utils = require('utils');
var http = require('http');
var fs = require('fs');
casper.options.waitTimeout = 20000;

// A test to make sure that we can go into a github without any authentication
casper.start('https://github.com/gabegomez014/Test2', function(){
    this.echo(this.getTitle(), 'INFO');
});

// A test for how the download function works
casper.thenOpen('https://github.com/gabegomez014/SSS', function() {
    url = 'https://github.com/gabegomez014/SSS/tree/master/src/SolarSystem/'
    this.download(url, 'Algorithms.java');
});

// A test in order to get the current HTTP status of links that have been put into the function
// Attempt 3 works and cleaner
casper.thenOpen('https://github.com/gabegomez014/Test2/blob/master/.gitignore', function(){
    var res = this.status(false);
    this.echo(res.currentHTTPStatus);
});

// To let me know that all of the functions have finished and all done
casper.then(function(){
    console.log('complete');
});

casper.run();