首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写一个只在输入值并单击按钮后才会出现的数据集的函数。

编写一个只在输入值并单击按钮后才会出现的数据集的函数。
EN

Stack Overflow用户
提问于 2018-05-16 00:33:17
回答 1查看 80关注 0票数 0

我正在尝试编写一个函数,该函数将获取日期列表并检索https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm上找到的数据集。

我在SAS中使用PROC IML来执行R代码(因为我对R比较熟悉)。

我的问题是在R,是由于该网站。

首先,我知道有一个API,但这是我真正想要学习的练习,因为很多网站都没有API。

有人知道如何检索数据集吗?

我听说过的事:

  1. 使用RSelenium对单击进行编程。RSelenium最近被从存档中删除,所以这不是一种选择(甚至从以前的版本下载它也会导致问题)。
  2. 当我单击Chrome中的"submit“按钮时,请查看XML url的更改。然而,“网络”选项卡中的XML没有显示任何内容,而在其他具有不同搜索方法的网站上则是如此。

我已经找了一整天的解决办法,但都没有用!请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2018-05-16 03:50:22

您可以使用Proc HTTP在SAS会话中执行相同的http处理。CSV数据不包含标题行,因此XML格式可能更合适。美国国债直销网站有几个注意事项。

  • 在发布数据下载请求之前,连接需要一些在GET请求期间分配的cookie。可以做到这一点。
  • XML包含一个额外的标记容器<bpd>,SAS XMLV2库引擎不能简单地处理这些标记容器。这个额外的标记可以通过一些数据步骤处理来删除。

XML示例代码

代码语言:javascript
运行
复制
filename response TEMP;
filename respfilt TEMP;

* Get request sets up fresh session and cookies;
proc http
  clear_cache 
  method = "get"
  url ="https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
;
run;

* Post request as performed by XML format button;
* automatically utilizes cookies setup in GET request;
* in= can now directly specify the parameter data to post;

proc http 
  method = "post"
  in = 'priceDate.year=2018&priceDate.month=5&priceDate.day=15&submit=XML+Format'
  url ="https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
  out = response
;
run;

* remove bpd tag from the response (the downloaded xml);

data _null_;
  infile response;
    file respfilt;
  input;
  if _infile_ not in: ('<bpd', '</bpd');
  put _infile_;
run;

* copy data collections from xml file to tables in work library;

libname respfilt xmlv2 ;

proc copy in=respfilt out=work;
run;

参比物质

使用SAS轻松休息:如何使用SAS来获得REST 约瑟夫·亨利( Joseph Henry ),SAS研究所公司,卡里,NC http://support.sas.com/resources/papers/proceedings16/SAS6363-2016.pdf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50360882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档