如何使用 SAS 的 PROC HTTP GET HTML 动态创建的值
How to GET HTML dynamically created values with SAS's PROC HTTP
我正在尝试使用 PROC HTTP 获取某物的不断变化的价值(例如,本网站中比特币的价格:https://www.coindesk.com/price/)
如果我们使用 F12 打开检查器并查找大价格的标签元素,我们可以找到:
<div id="cdbpidata">
<span class="wpsr_floatbts_anchor" data-offset="31" style="float: left;"></span>
<div class="latest">
<span class="data"><span class="symbol">$</span>8,165.12</span>
<span class="percent data-up">0.02%</span>
</div>
.
.
.
</div>
我想获取“8,165.12”并将其放入数据集。然后我用了这个:
proc http
url='https://www.coindesk.com/price/'
method='GET'
out=resp;
run;
而且有效!但还不够好。我在 xml:
中收到了这个
<div id="cdbpidata">
<span class="wpsr_floatbts_anchor" data-offset="31" style="float: left;"></span>
<div class="latest">
<span class="data">–</span>
<span class="percent"></span>
</div>
.
.
.
</div>
对我来说没什么大不了的,太糟糕了。明明是因为价格打印在DOM里面有一个javascript函数,但是我不知道怎么弄到啊!
求助!
如果您深入了解开发者工具网络选项卡,您会看到该页面从 coindesk api 发出了 json 数据请求。您可以执行相同的查询而无需抓取 html 页面。
您应该在点击 api 之前查看 coindesk 政策。您可能需要获取用户密钥,或者可能存在其他限制数据提取的条款。
filename outjson 'c:\temp\prices.json';
proc http
url='https://api.coindesk.com/v1/bpi/currentprice/allcurrencies.json?showex=1&calc=1'
method='GET'
out=outjson
;
run;
SAS 有一个 json
库引擎,其工作方式类似于 xml
库引擎。
libname price json 'c:\temp\prices.json';
data price_usd;
set price.bpi_usd;
run;
proc print data=price_usd;
run;
我正在尝试使用 PROC HTTP 获取某物的不断变化的价值(例如,本网站中比特币的价格:https://www.coindesk.com/price/)
如果我们使用 F12 打开检查器并查找大价格的标签元素,我们可以找到:
<div id="cdbpidata">
<span class="wpsr_floatbts_anchor" data-offset="31" style="float: left;"></span>
<div class="latest">
<span class="data"><span class="symbol">$</span>8,165.12</span>
<span class="percent data-up">0.02%</span>
</div>
.
.
.
</div>
我想获取“8,165.12”并将其放入数据集。然后我用了这个:
proc http
url='https://www.coindesk.com/price/'
method='GET'
out=resp;
run;
而且有效!但还不够好。我在 xml:
中收到了这个<div id="cdbpidata">
<span class="wpsr_floatbts_anchor" data-offset="31" style="float: left;"></span>
<div class="latest">
<span class="data">–</span>
<span class="percent"></span>
</div>
.
.
.
</div>
对我来说没什么大不了的,太糟糕了。明明是因为价格打印在DOM里面有一个javascript函数,但是我不知道怎么弄到啊! 求助!
如果您深入了解开发者工具网络选项卡,您会看到该页面从 coindesk api 发出了 json 数据请求。您可以执行相同的查询而无需抓取 html 页面。
您应该在点击 api 之前查看 coindesk 政策。您可能需要获取用户密钥,或者可能存在其他限制数据提取的条款。
filename outjson 'c:\temp\prices.json';
proc http
url='https://api.coindesk.com/v1/bpi/currentprice/allcurrencies.json?showex=1&calc=1'
method='GET'
out=outjson
;
run;
SAS 有一个 json
库引擎,其工作方式类似于 xml
库引擎。
libname price json 'c:\temp\prices.json';
data price_usd;
set price.bpi_usd;
run;
proc print data=price_usd;
run;