2013-07-08 81 views
2

我正在使用網站https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm使用Python收集歷史30年國庫債券價格

本網站使我可以根據債券的CUSIP號碼獲取歷史債券價格。我試圖構建一個圖表來顯示特定債券的歷史價格隨時間的變化,但網站不支持此功能。相反,它允許用戶查找特定的日期。

我很好奇,如果有一種方法在Python中輸入我想查找的日期,然後將這些日期「發佈」到網站並閱讀結果網頁以搜索我的特定CUSIP並構建一個日期和字典價格爲了圖形化可視化和解釋這些數據。

如果輸入日期將您帶到可以在地址中操作的網站的特定目錄,這將是一件容易的事情,但不幸的是,網站的設置方式似乎是內置程序,它顯示每天的相應圖表。如果有人能幫助我,我會非常感激!

我已經嘗試使用urllib2和請求函數發送與priceData.day,month和year的參數的字典,但它不打開正確的網頁。

import urllib2 
def URLRequest(url, params, method="GET"): 
    if method == "POST": 
     return urllib2.Request(url, data=urllib.urlencode(params)) 
    else: 
     return urllib2.Request(url + "?" + urllib.urlencode(params)) 
data = URLRequest("https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm",{"priceData.month":"7","priceData.day":"8","priceData.year":"2013"}, method="POST") 
response = urllib2.urlopen(data) 
response.read() 
[Out]: The source file of the website without displaying the information I need 
+2

歡迎堆棧溢出!看起來你希望我們爲你寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出和實際獲得的輸出(控制檯輸出,堆棧跟蹤,編譯器錯誤 - 無論是適用)。您提供的細節越多,您可能會收到的答案就越多。 –

+0

我剛剛做了,請不要爲此投票給我...... –

+0

我在您的帖子中看不到任何代碼。我沒有看到錯誤消息,我沒有看到您的輸出或輸入。 –

回答

1

頁面需要submit=Show+Prices在POST數據。

我在linux上用curl進行了測試。

沒有submit=Show+Prices這給我正常的頁面:

curl -k https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm -d "priceDate.month=7&priceDate.day=8&priceDate.year=2013" 

隨着submit=Show+Prices這給我的頁面數據:

curl -k https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm -d "priceDate.month=7&priceDate.day=8&priceDate.year=2013&submit=Show+Prices" 
+0

你真棒。非常感謝,一旦完成,我會發布我的代碼。 –

+0

我在這裏發佈了另一個問題 - http://stackoverflow.com/questions/17550235/website-caching-info-using-urllib2-in-python 你能幫助我嗎?這似乎是相關的 –

+0

沒關係,發現它只是一個錯字... –