我正在使用网站https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm。
通过本网站,我可以根据债券的CUSIP数量获取历史债券价格。我正在尝试构建一个图表来显示特定债券的历史价格,但该网站不支持此功能。相反,它允许用户查找特定日期。
我很好奇是否有一种方法在Python中输入我想要查找的日期,然后将这些日期“发布”到网站并阅读生成的网页以搜索我的特定CUSIP并构建日期和价格的字典为了以图形方式显示和解释这些数据。
如果输入日期会将您带到可以在地址中操作的网站的特定目录,这将是一项简单的任务,但不幸的是,网站的设置方式似乎是一个显示相应的内置程序每天的图表。如果有人能帮助我,我会非常感激!
我尝试使用urllib2和Request函数发送带有priceData.day,month和year参数的dict,但它没有打开正确的网页。
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
答案 0 :(得分:1)
POST数据中需要submit=Show+Prices
页。
我在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"