問題に対する一般的な解決策はありません。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 にある程度精通している必要があります。
もう 1 つの方法は、(たとえばWiresharkを介して) ネットワーク トラフィックを監視しながらダウンロード リンクをクリックし、ブラウザが要求している構築された URL を観察することです。HTTP の知識が必要です。