将webdata提取到SAS中

时间:2015-03-21 17:18:18

标签: sas

我正在尝试从网页中提取数据。它显示在浏览器上,但不显示在源代码中。所以当我尝试使用FILENAME URL时,我想要的数字不在fileref中。我还尝试通过DOS命令打开浏览器并将其传输到fileref中,但它也无法正常工作。有人有什么建议吗?

我要去的网站 http://www.cargurus.com/Cars/instantMarketValueFromVIN.action?startUrl=%2F&carDescription.vin=4T1BF32K33U040430

我想提取的数据是右侧的买入和交易价格。

提前致谢。

1 个答案:

答案 0 :(得分:9)

我查看了您提供的网址。使用url时没有得到任何结果的原因是因为页面在检索结果时使用jQuery和Ajax来填充网页。因此,结果相关的部分/标签即时创建。当SAS尝试读取url时,它会读取基本的HTML页面,而不是jQuery填充它的内容。要解决此问题,您可以在Chrome浏览器上使用Firebug插件或Chrome浏览器上的Chrome开发人员工具,并仔细分析网络部分,找到jQuery用来填充页面结果部分的数据网址。对于你的网址,我使用了FireBug并且能够检索应该用于提取所需信息的网址。

您需要使用的网址应为: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

下面是一个小参考代码,可以帮助您进一步使用抓取部分:

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; 

希望这有帮助!