【发布时间】:2012-02-23 17:21:57
【问题描述】:
如何自动从网站下载 XLS 文件? 我的客户输入用户名和密码登录网站,然后我需要一个一个下载 XLS 文件列表并将它们保存到一个路径中。文件链接位于 html 表中。 需要你们的帮助
【问题讨论】:
-
我已经尝试了一个 IMACROS 脚本,但是这个脚本并不完美。
标签: c# javascript html web xls
如何自动从网站下载 XLS 文件? 我的客户输入用户名和密码登录网站,然后我需要一个一个下载 XLS 文件列表并将它们保存到一个路径中。文件链接位于 html 表中。 需要你们的帮助
【问题讨论】:
标签: c# javascript html web xls
您可以通过以下方式执行此操作... 浏览器行为不同,但您可以通过一个操作启动多个文件的下载。我认为这是您在浏览器中可能拥有的最佳解决方案。
您可以创建一组临时隐藏的 iframe,通过 GET 或 POST 在其中启动下载,等待下载开始并删除 iframe:
<!DOCTYPE HTML>
<html>
<body>
<button id="download">Download</button>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$('#download').click(function() {
download('http://nogin.info/cv.doc','http://nogin.info/cv.doc');
});
var download = function() {
for(var i=0; i<arguments.length; i++) {
var iframe = $('<iframe style="visibility: collapse;"></iframe>');
$('body').append(iframe);
var content = iframe[0].contentDocument;
var form = '<form action="' + arguments[i] + '" method="GET"></form>';
content.write(form);
$('form', content).submit();
setTimeout((function(iframe) {
return function() {
iframe.remove();
}
})(iframe), 2000);
}
}
</script>
</body>
</html>
【讨论】:
一种廉价且简单的方法是设置 Web 浏览器控件并使用它登录。您现在拥有该站点的凭据。然后,让一个按钮触发每个 XLS 文件的 URI,使用相同的上下文打开,然后保存到驱动器。
您实际上可以对用户隐藏控件。
由于您似乎可以控制该站点,因此我还会考虑使用不同的方法来提供这些位,例如 WCF 服务。
【讨论】: