我正在研究国家发行的市政债券的项目,但我无法获取我的数据。使用 XML 包和下面的代码,我能够得到一些。
> nys="http://newyork.municipalbonds.com/bonds/issue/649787N87"
> nys.table=readHTMLTable(nys,asText=TRUE,which=4)
> nys.table=as.data.frame(nys.table)
> head(nys.table)
Trade Date Trade Time Maturity Date Coupon Price Yield Trade Amount Trade Type
1 2012-09-27 2:49pm 2013-Apr 5.000% 102.522 0.289 $270,000 Investor bought
2 2012-09-27 1:17pm 2013-Apr 5.000% 102.290 0.712 $45,000 Inter-dealer
但该网站仅免费提供小样本。官方网站 EMMA 有免费的数据,但我很难抓取它。当我尝试与以前相同的方法时,我最终得到
nys="http://emma.msrb.org/SecurityView/SecurityDetailsTrades.aspx?cusip=649787N87"
nys.table=readHTMLTable(nys,asText=TRUE)
nys.table=as.data.frame(nys.table)
head(nys.table)
data frame with 0 columns and 0 rows
据我了解,并且我对此相当肯定,当您通过网络浏览器导航到它时,有一个标准的 T&C 页面。使用 htmlParse(nys) 后,输出与 T&C 页面的页面源代码相同,而不是数据实际所在的页面。因此,当代码运行时,它会尝试在 T&C 页面上查找表格。
我认为这将是一个相当普遍的问题,但到目前为止,我还没有找到任何有人遇到类似问题的帖子。如果有人能指出我正确的方向,我将不胜感激。