如何自动从这个网站上获取CSV文件?

时间:2015-08-22 21:48:35

标签: webpage

我之前从未使用过网页,而且我想知道如何通过编程/脚本来自动化以下内容:

1)转到http://financials.morningstar.com/ratios/r.html?t=GMCR&region=USA&culture=en_US 2)调用右上角附近的“导出到CSV”按钮 3)将此文件保存到本地目录中 4)解析文件

第4部分不需要使用与1-3相同的语言,但理想情况下我希望使用一种语言一次性完成所有操作。

我注意到如果我将鼠标悬停在按钮上,它会显示:javascript:exportKeyStat2CSV();这是一个我可以以某种方式调用的java函数吗?

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

它是一个Java 脚本函数,它不是Java!

乍一看,这看起来似乎需要执行Javascript来完成它,但是如果你看一下文档的来源,你可以看到这个函数就像这样实现:

    function exportKeyStat2CSV(){
        var orderby = SRT_keyStuts.getOrderFromCookie("order");
        var urlstr = "//financials.morningstar.com/ajax/exportKR2CSV.html?&callback=?&t=XNAS:GMCR&region=usa&culture=en-US&cur=&order="+orderby;
        document.location = urlstr;
    }

因此,它构建了一个完全固定的URL,除了从cookie中获取的部分顺序。然后,只需设置document.location即可导航到该网址。如果您将订单部分留空,那么一个小测试显示您甚至可以获得csv文件,因此,您可以从代码中的基本URL下载CSV。

下载可以使用各种工具完成,例如WGet for Windows。有关更多可能性,请参阅SuperUser。无论如何,'步骤1到3'实际上只是一个命令。

之后,您只需要解析文件。解析CSV文件可以使用批处理完成,并且several examples可用。我没有详细说明,因为你没有提供任何问题。

PS。在您实际执行此操作之前,我会检查他们的terms of use

答案 1 :(得分:1)

该按钮将我引导至this链接:

http://financials.morningstar.com/ajax/exportKR2CSV.html?&callback=?&t=XNAS:GMCR&region=usa&culture=en-US&cur=&order=asc

您可以使用Python 3模块urllib并获取文件,使用osshutil模块保存,然后使用众多CSV解析模块中的一个解析它,或者制作自己的。