我需要能够使用Java从网页下载文件。问题是我似乎无法找到该文件的确切URL。示例:www.something.com/file.xls。
我需要的文件可在此网址上找到:http://www.nasdaqomxnordic.com/aktier/Historiska_kurser/?Instrument=SSE837#divId 如果向下滚动,可以看到Excel徽标。
如果有人有一个图书馆可以帮助我解决这个问题,当然还有任何其他类型的指导,我会很高兴:)
答案 0 :(得分:0)
您的问题没有通用解决方案 - 可以使用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知识。