我正在尝试从网页中提取数据。它显示在浏览器上,但不显示在源代码中。所以当我尝试使用FILENAME URL时,我想要的数字不在fileref中。我还尝试通过DOS命令打开浏览器并将其传输到fileref中,但它也无法正常工作。有人有什么建议吗?
我想提取的数据是右侧的买入和交易价格。
提前致谢。
答案 0 :(得分:9)
我查看了您提供的网址。使用url时没有得到任何结果的原因是因为页面在检索结果时使用jQuery和Ajax来填充网页。因此,结果相关的部分/标签即时创建。当SAS尝试读取url时,它会读取基本的HTML页面,而不是jQuery填充它的内容。要解决此问题,您可以在Chrome浏览器上使用Firebug插件或Chrome浏览器上的Chrome开发人员工具,并仔细分析网络部分,找到jQuery用来填充页面结果部分的数据网址。对于你的网址,我使用了FireBug并且能够检索应该用于提取所需信息的网址。
下面是一个小参考代码,可以帮助您进一步使用抓取部分:
filename myurl url 'http://www.cargurus.com/Cars/priceCalculatorReportAjaxResearchPriceView.action?carDescription.autoEntityId=c3576&carDescription.postalCode=&carDescription.mileage=&carDescription.price=&carDescription.radius=75&carDescription.transmissionType=AUTOMATIC_TRANSMISSION&selectedEntity=c3576&carDescription.vin=4T1BF32K33U040430';
data scrap_data;
length text $500;
retain text ;
file 'c:\url.txt' lrecl=32767;
infile myurl truncover;
input;
if find(_infile_,'<span','it') and find(_infile_,'</span','it') then do;
text=strip(_infile_);
put @1 text;
call missing(text);
end;
else if find(_infile_,'<span','it') then do;
do until(find(_infile_,'</span','it') ne 0);
text=catx(' ',text,_infile_);
input;
end;
put @1 text;
call missing(text);
end;
run;
希望这有帮助!