我需要使用 Casper.js 下载图像资源。当图像托管在具有不同域名的 CDN 上时,我遇到了一些情况。下面是 Twitter.com 示例,即使使用web-security=no也不起作用:casperjs --ignore-ssl-errors=yes --web-security=no test.js
var casper = require("casper").create();
casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0');
casper.start();
casper.thenOpen("https://twitter.com/", function() {
casper.download("https://abs.twimg.com/a/1369885592/t1/img/front_page/cricket@2x.jpg", "test.jpg");
});
casper.run(function() {
casper.exit();
});
有人可以帮我解决这个问题吗?可以http request
分开使用吗?我可以做到这一点,它会工作
casper.thenOpen("https://abs.twimg.com", function() {
casper.download("https://abs.twimg.com/a/1369885592/t1/img/front_page/cricket@2x.jpg", "test.jpg");
});
但这样的开销太大了。
更新 1:
我在Windows 7上运行 phantom.js 1.9.0 和 casper.js 1.0.2 。
这是我得到的错误(当然没有文件被捕获):
Remote: sendAJAX(): Using HTTP method: 'GET'
Remote: getBinary(): Unfortunately, casperjs cannot make cross domain ajax reque
sts
Remote: getBinary(): Error while fetching https://abs.twimg.com/a/1369885592/t1/
img/front_page/cricket@2x.jpg: Error: NETWORK_ERR: XMLHttpRequest Exception 101