从主页下载文件没有网址。用java

时间:2012-08-31 22:53:20

标签: java url download

我需要能够使用Java从网页下载文件。问题是我似乎无法找到该文件的确切URL。示例:www.something.com/file.xls。

我需要的文件可在此网址上找到:http://www.nasdaqomxnordic.com/aktier/Historiska_kurser/?Instrument=SSE837#divId 如果向下滚动,可以看到Excel徽标。

如果有人有一个图书馆可以帮助我解决这个问题,当然还有任何其他类型的指导,我会很高兴:)

1 个答案:

答案 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知识。