如何从网站下载信息

时间:2012-01-22 22:36:39

标签: php vba

我正在尝试根据一些参数自动从网站下载信息。基本上我想指定搜索的参数,并让功能自动导航到适当的网站并下载文件。请注意,所有文件都是excel文件,通常是.csv。

这是网站:http://comtrade.un.org/db/

注意:此网站地址将根据搜索进行更新,例如,如果您搜索从美国到伊朗的贸易(其余参数未指定),结果为:

http://comtrade.un.org/db/dqBasicQueryResults.aspx?px=HS&cc=TOTAL&r=364&p=842&rg=1&y=2010,2009,2008,2007,2006&so=8

更多相关内容:

http://unstats.un.org/unsd/tradekb/Knowledgebase/Data-Extraction-Using-Comtrade-Web-Service 查看Web服务方法和参数

两个问题:

1)我该怎么做?

2)最好的语言是什么?

2 个答案:

答案 0 :(得分:2)

没有“最好的语言”。您可以使用具有HTTP访问可用性的任何语言来执行此操作,这可以是PHP,Java,RoR,Perl,Python ......

the link you posted上,您可以阅读他们提供的REST服务,用于访问XML中的数据。

在PHP中,您首先必须使用适当的URL下载文件:

$xml = file_get_contents("http://comtrade.un.org/ws/...");

使用PHP的XML函数来解析文件。

我不确定他们的数据使用许可 - 您可能无法从法律上允许自动从此处下载数据。

<强>更新 您无法直接下载搜索结果中的文件(例如通过PHP) - 因此您必须使用REST访问权限,但只有UN允许您这样做时,其中某些部分显然是可访问的。如果您尝试直接下载“excel”(实际上是CSV)文件,最终会出现如下错误:http://comtrade.un.org/db/dqBasicQueryResultsd.aspx?action=csv&px=HS&cc=TOTAL&r=364&p=842&rg=1&y=2010,2009,2008,2007,2006&so=8。您可以欺骗HTTP_REFERER值,但您将违反服务条款。

答案 1 :(得分:0)

在PHP中,使用file_get_contents("http://............");

插入您想要的任何URL和GET参数,您立即获得数据,在本例中为CSV,然后您可以处理。