excel vba 网页数据抓取(P.S.@AJAX数据库实例讲解(有时))

优采云 发布时间: 2022-02-08 22:12

  excel vba 网页数据抓取(P.S.@AJAX数据库实例讲解(有时))

  故事起源

  以前有个小网站发表了几篇关于使用SAS抓取网页数据的小文章,然后在人大论坛上放了一个链接。后来因为懒,这个站就挂了,问的人一个接一个。从新获得这篇文章后

  其中一个简单易懂,其他译文已由@收录翻译,链接会在文章的最后贴出。

  适用性

  在以下情况下,可以用同样的方法得到理论。

  PS @AJAX 数据库实例 || @AJAX 数据库实例说明

  文字前戏

  有时候我们经常需要保存和备份一些在线数据,比如银行利率、股票报价,或者来自统计局、各种金融机构或者其他类型的网站的数据。有时这些 网站 提供历史数据,而另一些则不提供。但是我们可以每天通过SAS运行程序,获取积累的历史数据,供以后分析。下面我以收购主页上海银行同业拆借利率为例进行说明。

  以下是我们要在首页的数据

  

  当我们打开这个网页并输入网页的源代码时,我们会惊奇地发现。什么情况,主页上看到的数据在源码中找不到,是不是用了其他技术。我们来看看源码代表什么

  网页布局。

  按照网页的布局,最新Shibor数据的源代码应该放在一大块文字之后,他放了一句话。

  这是html内联框架结构,意思是他把数据放到另一个网页上,然后把这个网页嵌入到主页中。好,那我们打开这个页面

  并查看源代码,发现该网页中存在数据,然后我们开始用SAS进行抓取。

  高潮

  首先介绍Filename,通过添加infile语句可以将网页作为文件导入SAS数据集。BaseSAS 中的FILENAME 语句(URL 访问方法)使用户能够从网站访问源代码并将其读入数据集。此语句的语法是:

  

FILENAME fileref URL 'external-file';

  将 Shibor 数据网页导入 SAS 数据集。我们知道网络数据是一种标记语言,受制于一定的规范,所有的属性设置都包括在内。所以我们用 dlm=">" 来分隔并导入到一个变量中,因为数据太杂乱,我们无法区分并导入到不同的变量中。

  

FILENAME SOURCE URL "%STR(http://www.shibor.org/shibor/web/html/shibor.html)" DEBUG;

DATA Zhaocl01;

FORMAT WEBPAGE $1000.;

INFILE SOURCE LRECL=32767 DELIMITER=">";

INPUT WEBPAGE $ @@;

RUN;

  因为我们使用 dlm=">" 进行分隔,所以我们知道采集到的观察结果只需要以

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线