根据帖子,得知sas9.2抓取网页数据时,提示连接不到主机名。但是较低版本sas 9.1确可以,所以本文中的代码均在sas 9.1中测试过:
filename liu url %nrquote(’
http://item.taobao.com/item.htm? ... _1006:1102865101:6:����Ůt��:2ae68475680
ece3b1c5018226096ff38&ali_trackid=1_2ae68475680ece3b1c5018226096ff38&spm=a230r.1.14.1.uQXfpl‘);
此处利用filename抓取网页html代码,但是网页连接中含有%、&这样的宏触发器,所以利用
%nrquote将其隐藏。当然也可以利用%nrstr。注意此处是单引号,不能是双引号。若利用双引号的话,必须是%nrstr。
这里是为什么?我测试了很多次。
data aa;
infile liu length=len lrecl=4000 DELIMITER=">";
input record $varying4000.len ;
run;
因为html文件均是以’>‘结尾,所以利用’>‘作为分隔符。
data cc;
set aa;
if _n_=1 then pattern=prxparse("/\d{1,2}\.(\d{2})%/");
retain pattern;
call prxsubstr(pattern,record,start,length);
if start gt 0 then do;
record=substr(record,start,length);
record=compress(record," ");
output;
end;
keep record;
run;