您的问题没有通用的解决方案——JavaScript 可用于混淆什么是链接,什么不是链接以及链接的去向。但是,如果您对抓取特定页面感兴趣,则可以对其进行逆向工程。
例如,在您链接的页面上,Excel 徽标具有 ID exportExcel
。搜索#exportExcel
最终会导致这个代码片段:
if(to.match(/^\d{4}[-]\d{2}[-]\d{2}$/) && from.match(/^\d{4}[-]\d{2}[-]\d{2}$/)) {
var query = webCore.createQuery( webCore.marketAction.getDataSeries, {}, {
FromDate: from,
ToDate: to,
Instrument: webCore.getInstrument(),
hi__a : "0,1,2,4,21,8,10,11,12,9",
OmitNoTrade: "true",
ext_xslt_lang: currentLanguage,
ext_xslt_options: "," + $("#adjustedId:checked").val() + ",", //$("#unadjustedId:checked").val() + ",",
ext_xslt: "hi_table_shares_adjusted.xsl",
ext_contenttype : "application/ms-excel",
ext_contenttypefilename : "_" + webCore.getInstrument() + ".xls",
ext_xslt_hiddenattrs: ",ip,iv,",
ext_xslt_tableId: "historicalTable"
}
);
$("#excelQuery").val( query );
$("#excelForm").attr( "action", webCore.proxyURL ).submit();
}
那是建立一个带有某种隐藏表单提交的 URL。通过对源代码进行试验和跟踪,您应该能够在 Java 代码中复制它正在执行的操作以生成所需的 URL。您需要熟悉 JavaScript 和 JQuery。
另一种方法是在查看网络流量(例如通过Wireshark)的同时单击下载链接,并观察浏览器请求的构造 URL。您将需要一些 HTTP 知识。