2012-01-22 72 views
0

我試圖根據幾個參數自動從網站下載信息。本質上,我想指定搜索的參數,並讓該功能自動導航到相應的網站並下載文件。請注意,所有文件都是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服務的方法和paramete rs

兩個問題:

1)我該怎麼做?

2)什麼是最好的語言來做到這一點?

+0

爲什麼這個問題標記爲VBA? – ThiefMaster

+0

這些文件都是excel文件,我只是假設有一種方法可以使用該編程語言來檢索文件。 – NONE

回答

0

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

插上任何URL,並得到你想要的參數,你即刻擁有的數據,在這種情況下,CSV,您可以再處理。

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函數來解析文件。

我不確定他們的數據使用許可 - 您可能沒有法律允許自動從這裏下載數據。

UPDATE 您不能直接下載在搜索結果中找到(通過PHP EG)的文件 - 所以,你必須使用REST訪問,但它的某些部分顯然訪問只有當聯合國允許你這樣做。如果您嘗試直接下載「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的值,但是你會破壞服務的條款。