【发布时间】:2011-11-30 03:22:10
【问题描述】:
我正在尝试使用 DOM 从以下一批 HTML 中获取日期和时间以及房间(我实际上在我的脚本中获取了所有内容,但它让这两个我遇到了麻烦):
</td><td class="call">
<span>12549<br/></span><a href="http://www.bkstr.com/webapp/wcs/stores/servlet/booklookServlet?bookstore_id-1=584&term_id-1=201190&crn-1=12549" target="_blank">View Book Info</a>
</td><td>
<span id="ctl10_gv_sectionTable_ctl03_lblDays">F:1000AM - 1125AM<br />T:230PM - 355PM</span>
</td><td class="room">
<span id="ctl10_gv_sectionTable_ctl03_lblRoom">KUPF106<br />KUPF106</span>
</td><td class="status"><span id="ctl10_gv_sectionTable_ctl03_lblStatus" class="red">Closed</span></td><td class="max">20</td><td class="now">49</td><td class="instructor">
<a href="https://directory.njit.edu/PersDetails.aspx?persid=SCHOENKA" target="_blank">Schoenebeck Kar</a>
</td><td class="credits">3.00</td>
</tr><tr class="sectionRow">
<td class="section">
101<br />
这是我到目前为止找到的日子
$tracker =0;
// DAYS AND TIMES
$number = 3;
$digit = "0";
while($tracker<$numSections){
$strNum = strval($number);
$zero = strval($digit);
$start = "ctl10_gv_sectionTable_ctl";
$end = "_lblDays";
$id = $start.$zero.$strNum.$end;
//$days = $html->find('span.$id');
$days=$html->getElementByTagName('span')->getElementById($id);
echo "Days : ";
echo $days[0] . '<br>';
$tracker++;
$number++;
if($number >9){
$digit = "1";
$number=0;
}
}
正如您从 HTML 中看到的,正在解析的站点在其某些跨度 (ctl10_gv_sectionTable_ctl03_lblRoom) 中具有非常独特的 ID。由于我只发布了 1 个部分的 HTML 块,你看不到的是下一个类部分的代码是相同的,除了“ctl03”部分,这是我所处理的所有额外代码,所以没有一个被它甩了。
我尝试了几种不同的方法,但似乎无法获得日期(即“1000AM - 1125AM”)或房间(即 KUPF106)。其余的东西很容易抓取,但这两个没有类标识符,甚至没有 td 标识符。我想我只需要知道如何使用我在 $id 中的值作为我正在寻找的特定跨度 id?如果是这样,有人可以告诉我该怎么做吗?
【问题讨论】:
标签: php html dom expression