我想使用DOM從以下批獲得的日期和時間,並在房間(IM實際上得到在我的劇本的一切,但它獲得這些具有麻煩兩個IM)獲取數據HTML:PHP DOM解析器從跨度
</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看到,該網站IM分析具有相當獨特的ID對一些跨度(ctl10_gv_sectionTable_ctl03_lblRoom) 。由於我只發佈了1個部分的HTML代碼塊,因此您沒有看到的是,除了「ctl03」部分外,下一個代碼段的代碼是相同的,這是我所有額外的代碼所處理的部分,一個被它拋棄。
我已經嘗試了幾種不同的方式,但似乎無法得到天(即「1000AM - 1125AM」)或房間(即KUPF106)。剩下的東西很容易抓取,但這兩個沒有類標識符,甚至沒有td標識符。我想我只需要知道如何使用我在$ id中的值作爲我正在尋找的特定跨度ID?如果有的話,有人可以告訴我該怎麼做?
我會避免關於DOMXPath的聲明變得更簡單,更不用說它更乾淨了。它更強大,但更容易?嗯...... – jolt
是的,我認爲這條線不會做我想做的事情,這是最後一次嘗試得到它。 $ html是我需要的任何網站的HTML ...「\t $ html = file_get_html($ fp);」 是啊,我沒有看xpath一點,它似乎並不容易,但即時將嘗試您的建議,謝謝 – user1070764
@湯姆,我認爲XPath是既簡單又清晰。使用DOM比getElementById更復雜。 –