关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
扫码加入金融交流群![]() |
有时我们常常需要保存备份某些网上的数据,如银行利率,股票行情,抑或统计局、各种金融机构或其他类型网站的数据。 有时这些网站会提供历史数据,有的则不会。但是我们可以通过SAS每天跑下程序获取累积历史数据作为后来的分析之用。现在我拿获取 http://www.shibor.org/ 主页,上海银行间同业拆放利率,作为案例进行演示。
以下为主页上我们想要的数据http://img2081.poco.cn/mypoco/myphoto/20121230/05/17326974720121230053258013.jpg
当我们打开此网页,并进到网页源码中时,我们会惊讶的发现。什么情况,在主页上看到的数据在源码里找不到,难道使用了别的技术。我们大概浏览一下源码所表示的
网页布局。
按网页布局来说,一大坨文字的后面就应该放最新Shibor数据的源码,而他放了一句。
<iframe scrolling="no" src ="/shibor/web/html/shibor.html" width="377" height="473" frameborder="0" name="shibordata"></iframe>这是html内联框架结构,就是说他把数据放另一个网页上了,然后把这个网页嵌在主页里。好,那我们就打开此网页
http://www.shibor.org/shibor/web/html/shibor.html并查看源码,发现数据就存在此网页中,那我们就开始用SAS抓它一下。
高潮首先介绍下Filename,利用它加上infile语句就可以把网页当成文件导入SAS数据集。 The FILENAME Statement (URL Access Method) in Base SAS, enables users to access the source code from a web site and read it into a data set. The syntax for this statement is:
FILENAME fileref URL 'external-file'<url-options>;- 数据导入
把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=">"进行了分隔,所以我们清楚收集到的观测值只要以<开头就说明这条观测只有设置语言,没有我们想要的数据。而我们真正要要的数据肯 定都在<标识符的前面。因为在网页源码中会用  代表空格,&代表连字符,所以把他们进行替换。
DATA Zhaocl02; SET Zhaocl01; WHERE WEBPAGE LIKE "_%<%"; /**删除以<开头的观测**/ TEXT=SUBSTRN(WEBPAGE,1,FIND(WEBPAGE,"<")-1); /**提取<前面的字符串**/ TEXT=TRANWRD(TEXT,"%NRSTR( )"," "); TEXT=TRANWRD(TEXT,"%NRSTR(&)","&"); IF ANYALPHA(TEXT) + ANYDIGIT(TEXT) LT 1 THEN DELETE;/**保留有效观测**/ KEEP TEXT;RUN;结局- 结果展现
拿到了清理后的数据集,打开看下已经很清楚了。我们只要再做下最后简单的加工就好了。注意,由于网页布局的变动这段程序也可能要随之稍加修改。
data Zhaocl03; set Zhaocl02; set Zhaocl02(firstobs=2 rename=(text=next1)); set Zhaocl02(firstobs=3 rename=(text=next2)); if text in ("O/N","1W","2W","1M","3M","6M","9M","1Y"); label text='期限' next1='Shibor(%)' next2='涨跌(BP)'; run;proc print label;run;http://img2081.poco.cn/mypoco/myphoto/20121230/05/17326974720121230054538087.jpg
其他正则表达式
在处理网页数据时,有一个利器就是正则表达式,威力巨大。比如:
prxchange("s/<.+?>//",-1,WEBPAGE );就可以去除所有<>包含的内容。但是一定要在对自己获取数据了解十分透彻的情况下使用,以防遗漏重要信息。
(转)
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
- SAS软件培训 ... | SAS option '-PATH' not set. S ...
- SAS软件培训 ... | [分享]个人珍藏sas资料1:数据步 ...
- SAS软件培训 ... | SAS/AF软件详细介绍
- SAS软件培训 ... | SAS北京现场培训课
- SAS软件培训 ... | 寻书:Professional SAS Program ...
- SAS软件培训 ... | 基于SAS/GRAPH绘制动画雪景图
- SAS软件培训 ... | SAS Certification考试北京考点有 ...
- SAS软件培训 ... | SAS基础宏之10:GetDataSetInfoI ...
人气文章
本文标题:利用SAS抓取网页数据总结及案例
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_sasruanjianpeixun_2916525_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



