我需要將美元兌換爲另一種貨幣(比如歐元)的歷史日期列表。如何使用Linux命令行以編程方式從網頁中提取信息?
www.xe.com
網站提供歷史查詢工具,並使用詳細的網址,可以獲取特定日期的費率表,無需填寫Date:
和From:
框。例如,網址http://www.xe.com/currencytables/?from=USD&date=2012-10-15給出了2012年10月15日當天美元兌換其他貨幣的轉換率表。
現在,假設我有一個日期列表,我可以遍歷列表並更改日期部分的URL來獲取所需的頁面。如果我可以提取利率列表,那麼簡單的grep EUR
會給我相關的匯率(我可以使用awk來明確提取利率)。
問題是,如何使用Linux命令行命令獲取頁面?我試過wget
但它沒有完成這項工作。
如果不是CLI,是否有一種簡單而直接的方式來以編程方式執行此操作(即,將日期複製粘貼到瀏覽器的地址欄所需的時間比較短)?
更新1:
當運行:
$ wget 'http://www.xe.com/currencytables/?from=USD&date=2012-10-15'
我得到它包含文件:
<HTML>
<HEAD><TITLE>Autoextraction Prohibited</TITLE></HEAD>
<BODY>
Automated extraction of our content is prohibited. See <A HREF="http://www.xe.com/errors/noautoextract.htm">http://www.xe.com/errors/noautoextract.htm</A>.
</BODY>
</HTML>
因此它似乎是服務器可識別的類型的查詢並阻止wget
。任何方式在這個?
更新2:
讀取來自wget
命令和評論/回答的響應後,我查了網站的服務條款,發現這個子句:
You agree that you shall not:
...
f. use any automatic or manual process to collect, harvest, gather, or extract
information about other visitors to or users of the Services, or otherwise
systematically extract data or data fields, including without limitation any
financial and/or currency data or e-mail addresses;
這我想,總結這方面的努力。
現在,我的好奇心,如果wget
生成一個HTTP請求,如何服務器知道,這是一個命令,而不是瀏覽器請求?
發佈您嘗試的wget命令。 wget和curl是兩個常見的命令行實用程序,它們能夠發送HTTP請求並檢索響應(網頁)。 – Tuxdude 2013-02-27 06:07:48
@Tuxdude - 已更新。 – ysap 2013-02-27 06:11:23
那麼,回答你的問題,爲什麼wget無法檢索網頁。可能有辦法規避,但StackOverflow不是可以放棄它的地方。 – Tuxdude 2013-02-27 06:13:35