[英]scraping data using xpath php and domdocument gettin inner content of certain table
[英]Scraping data from the table using Xpath and PHP?
我想從下表中提取數據,表的標記如下所示。我正在使用Xpath從表中提取數據,但也歡迎其他建議。
<div style="clear:both;" id="showPrice">
<br>
<table cellspacing="1">
<tbody>
<tr>
<td width="50px" style="text-align: left" class="tdhead">SN</td>
<td width="650px" style="text-align: left" class="tdhead">Companies</td>
<td width="20px" class="tdhead">Trans</td>
<td width="50px" class="tdhead"> Max Price</td>
<td width="50px" class="tdhead">Min Price</td>
<td width="50px" class="tdhead">Closing Price</td>
<td width="50px" class="tdhead">Total Shares</td>
<td width="50px" class="tdhead">Amount Rs.</td>
<td width="50px" class="tdhead">Prev. Closing</td>
<td width="20px" class="tdhead">Diff.</td>
<td width="50px" class="tdhead">Diff. %</td>
<td colspan="3" class="closing-price">
<table>
<tbody>
<tr>
<td colspan="3">365 days</td>
</tr>
<tr>
<td width="50px" class="closing-price-lighter">Max Price</td>
<td width="50px" class="closing-price-lighter">Min Price</td>
<td width="50px" class="closing-price-lighter">Avg</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr style="background-color: #A61A00">
<td style="text-align: center;color:white;">1</td>
<td style="text-align: left;padding:3px;">
<a href="viewcompany.php?symbol=ACEDBL&id=177" style="text-decoration:none;color:white;">Ace Development Bank Limited</a>
</td>
<td class="numeric-data">3</td>
<td class="numeric-data">269.00</td>
<td class="numeric-data">264.00</td><td class="numeric-data" style="background-color:#99CCFF;color:black;">264.00</td>
<td class="numeric-data">495</td>
<td class="numeric-data">131,405</td>
<td class="numeric-data">265.00</td>
<td class="numeric-data">-1.00</td>
<td class="numeric-data" style="background-color:#99CCFF;color:black;">-0.38</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">281</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">102</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">150.15</td>
</tr>
</tbody>
</table>
</div>
我只希望收盤價類之后的數據。 我需要的數據是tr的以下td中的文本和數值:
<td style="text-align: left;padding:3px;">
<a href="viewcompany.php?symbol=ACEDBL&id=177" style="text-decoration:none;color:white;">Ace Development Bank Limited</a>
</td>
<td class="numeric-data">3</td>
<td class="numeric-data">269.00</td>
<td class="numeric-data">264.00</td><td class="numeric-data" style="background-color:#99CCFF;color:black;">264.00</td>
<td class="numeric-data">495</td>
<td class="numeric-data">131,405</td>
<td class="numeric-data">265.00</td>
<td class="numeric-data">-1.00</td>
<td class="numeric-data" style="background-color:#99CCFF;color:black;">-0.38</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">281</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">102</td>
<td class="numeric-data" style="background-color:#99FFFF;color:black;">150.15</td>
</tr>
我嘗試了以下表達式,但無法獲得結果:
//div[@id='showPrice']/td[preceding-sibling::td[@class='closing-price']]/text()
您還可以執行以下操作:
將其指向該特定的<tr>
標記:
$html_string = file_get_contents('http://www.sharesansar.com/today.php');
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html_string);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$values = array();
$row = $xpath->query('//div[@id="showPrice"]/table[1]/tr[2]/td');
foreach($row as $value) {
$values[] = trim($value->textContent);
}
echo '<pre>';
print_r($values);
結果:
Array
(
[0] => 1
[1] => Ace Development Bank Limited
[2] => 3
[3] => 269.00
[4] => 264.00
[5] => 264.00
[6] => 495
[7] => 131,405
[8] => 265.00
[9] => -1.00
[10] => -0.38
[11] => 281
[12] => 102
[13] => 150.15
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.