问题陈述:我需要使用 SAS 程序从 Web 获取数据并将其放入 SAS 数据集。
运行良好:我能够通过 SAS 获取目标网页的内容。
不工作(需要帮助):我无法通过 SAS 处理页面的源内容(如下所示)。我需要在源内容中找到“类别”,如果找到,则获取该行的所有值(NOV、OCT、SEP、AUG、JUL)。同样,我需要在源内容中找到“会议板”,如果找到,则获取该行的所有值(96.1,101.4,101.3,86.3,91.7)。源内容结构应始终保持不变。预期输出附加为 png 图像。如果有人知道并帮助我如何使用 SAS 程序解决这种情况,那将是一个很好的学习和帮助。
我试过这样的事情:
filename output "/desktop/Response.txt";
proc http
url="http://hosting.briefing.com/cschwab/Calendars/EconomicReleases/conf.htm"
method="get"
proxyhost="&proxy_host."
proxyport=&port
out=output;
run;
DATA CHECK;
LENGTH CATEGORY $ 5;
RETAIN CATEGORY;
INFILE output LENGTH = recLen LRECL = 32767;
INPUT line $VARYING32767. recLen;
IF FIND(line,'Category') GT 0 THEN DO;
CATEGORY = SCAN(STRIP(line),2,'<>');
OUTPUT;
END;
RUN;
网页源内容:
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr valign="top" align="right" class="sectionColor">
<td class="rH" align="left">Category</td>
<td class="rH">NOV</td>
<td class="rH">OCT</td>
<td class="rH">SEP</td>
<td class="rH">AUG</td>
<td class="rH">JUL</td>
</tr>
<tr valign="top" align="right" class="sectionColor">
<td class="rD" align="left">Conference Board</td>
<td class="rD">96.1</td>
<td class="rD">101.4</td>
<td class="rD">101.3</td>
<td class="rD">86.3</td>
<td class="rD">91.7</td>
</tr>
<tr valign="top" align="right" class="sectionColor">
<td class="rL" align="left"> Expectations</td>
<td class="rL">89.5</td>
<td class="rL">98.2</td>
<td class="rL">102.9</td>
<td class="rL">86.6</td>
<td class="rL">88.9</td>
</tr>
<tr valign="top" align="right" class="sectionColor">
<td class="rD" align="left"> Present Situation</td>
<td class="rD">105.9</td>
<td class="rD">106.2</td>
<td class="rD">98.9</td>
<td class="rD">85.8</td>
<td class="rD">95.9</td>
</tr>
<tr valign="top" align="right" class="sectionColor">
<td class="rL" align="left">Employment ('plentiful' less 'hard to get')</td>
<td class="rL">7.2</td>
<td class="rL">7.1</td>
<td class="rL">3.3</td>
<td class="rL">-2.2</td>
<td class="rL">2.2</td>
</tr>
<tr valign="top" align="right" class="sectionColor">
<td class="rD" align="left">1 yr inflation expectations</td>
<td class="rD">5.7%</td>
<td class="rD">5.6%</td>
<td class="rD">5.7%</td>
<td class="rD">5.8%</td>
<td class="rD">6.1%</td>
</tr>
</table>
SAS 数据集的输出应该是这样的: