4

我正在使用网站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
4

1 回答 1

3

submit=Show+PricesPOST 数据中需要的页面。

curl在linux上对其进行了测试。

没有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"
于 2013-07-08T23:46:40.540 回答