注册 登录
编程论坛 Excel/VBA论坛

求助网页文件下载问题

sbboo 发布于 2023-03-18 20:31, 547 次点击
网页网址:http://op1.  
网页下面有一个“导出Excel”数据文件,可以导出网页中的表格数据,数据文件地址为:http://op1.  以下程序可以执行导出Excel,但导出的数据文件打开后却不是本网页数据。请各位指教。

Dim myFolder As String,Obj As Object
myFolder = ThisWorkbook.Path & "\下载"
For Each Obj In CreateObject("Shell.Application").Windows
 If InStr(Obj.LocationURL, "op1") Then
    Dim myIE As SHDocVw.InternetExplorer
    Set myIE = Obj
    Do While myIE.Busy Or myIE.ReadyState <> 4
        DoEvents
    Loop
    URLDownloadToFile 0, "http://op1., myFolder & "\导出Excel.xls", 0, 0
 End If
Next
   
  
1 回复
#2
阳光上的桥2023-03-20 09:26
需要把当前页面的地址作为参数传递给下载网址,例如:

http://op1.

但是这样的使用应低调,如果网站开发人员不希望数据被我们这样提取,很容易让我们的方法失效。


附分析过程:
在浏览器按F12进入开发模式,看见下载按钮的代码如下:

<a id="downobj" href="javascript:void()" onclick="downEx();return false;" class="kin">导出Excel</a>


进一步跟踪函数代码:
程序代码:

function downEx() {
    if (typeof (game) != "undefined") {
        var cid = [];
        for (var i = 0; i < game.length; i++) {
            var strData = game[i].split("|");
            cid.push(strData[0]);
        }
        JQ("#ids").val(cid.join(","));
        JQ("#DownloadForm").submit();
        //        var url = "/ExportExcelNew.aspx?id=" + ScheduleID + "&ids=" + cid.join(",")
        //        window.open(url);
    }
}


最后看FORM代码:
程序代码:

<FORM name="DownloadForm" id="DownloadForm" action="/ExportExcelNew.aspx"
method="post" target="_blank"><INPUT name="id" type="hidden"
value="1557770">       <INPUT name="ids" id="ids" type="hidden">  
</FORM>


显然,我们没有提供ids参数,网站方没有严格空格我们,使得我们获得的数据与下载的一致。

[此贴子已经被作者于2023-3-20 09:31编辑过]

1