RE: Downloading TSV files
Meir Guttman <[email protected]> Thu, 28 Oct 2010 17:54:32 +0200
| Newsgroups | gmane.comp.lang.perl.modules.lwp |
|---|---|
| Message-ID | <!&!AAAAAAAAAAAYAAAAAAAAAKC25OsDcMdGneFIQhy+Pc3CgAAAEAAAAHy5Mq8G5TNIjSc/[email protected]> |
Dear Keary, Hmmm..., enlighting! I'll try what you suggested and post the results here. Thanks! Meir -----Original Message----- From: Keary Suska [mailto:[email protected]] Sent: Thursday, October 28, 2010 4:38 PM To: Libwww Perl Subject: Re: Downloading TSV files On Oct 28, 2010, at 7:43 AM, Meir Guttman wrote: > Unfortunately, it seems to me that the TSV file I am looking to download is > by no means static. IMHO it is dynamically generated, using a server side > JavaScript. The TSV download seems to be initiated by the following > "onclick" clause: > > <a class="ExcelLink" > onclick="javascript:customWindowOpen('/TASE/Pages/Export.aspx?sn=Excelds&Tbl > Id=0&Titles=en-US_AddColTitles&Columns=en-US_AddColColumns&enumTblType=AllSe > curities&AddCol=1&ExportType=4', '_blank', 'scrollbars=yes; toolbar=yes; > menubar=yes; resizable=yes', 800, 450);return false;" > href="javascript:void(0)">TSV</a> > > And the customWindowOpen javascript is defined as: > > <script language="javascript"> > > function customWindowOpen(strUrl, strWindow, strParams, iWidth, iHeight) > { > Var iLeft, iTop; > iLeft = (window.screen.width - iWidth) / 2; > iTop = (window.screen.height - iHeight) / 2; > strParams = strParams + ",width=" + iWidth.toString() +",height=" + iHeight.toString() + ",left=" + iLeft.toString() + ",top=" + iTop.toString(); > window.open(strUrl, strWindow, strParams); > } > </script> The JavaScript isn't doing anything fancy, just opening a new URL "/TASE/Pages/Export.aspx?sn=Excelds&TblId=0&Titles=en-US_AddColTitles&Column s=en-US_AddColColumns&enumTblType=AllSecurities&AddCol=1&ExportType=4" . You generally don't need to process JavaScript, just be able to grok it enough to send the server what it expects. Using FireFox and a tool like HttpFox or FireBug you can see what is being sent back and forth, and then simply imitate that behavior with your script. Keary Suska