2014-12-11 3 views
-1

Я был на миссии, чтобы узнать, как использовать PHP и царапать данные, создать базу данных и т.д.PHP выскабливание стол

Я пытался соскрести данные из http://www.basketball-reference.com/leagues/NBA_2015.html#all_team_stats

До сих пор я ве удалось наскрести только что целый раздел, делая это:

<?php 
$ch = curl_init("http://www.basketball-reference.com/leagues/NBA_2015.html#all_team_stats"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$cl = curl_exec($ch); 
$dom = new DOMDocument(); 
@$dom->loadHTML($cl); 
$table = $dom->getElementById("all_team_stats"); 
echo "<pre>"; 
print_r($table); 
?> 

Я отчасти потерял от того, как идти о выскабливании отдельных значений. Я предполагаю, что мне нужно запустить цикл для тегов <TD> или еще чего-нибудь?

ответ

0
$rows = $table->getElementsByTagName('tr'); 
for($i=0; $i<$rows->length; $i++){ 
    $cols = $rows->item($i)->getElementsByTagName('td'); 
    for($j=0; $j<$cols->length; $j++){ 
     print($cols->item($j)->textContent); 
    } 
} 
+0

Большое вам спасибо. Я пытаюсь понять все лучше, и мне интересно, почему это происходит, если вы удалите цикл 2-го цикла и отредактируете первый, чтобы просто напечатать $ rows, просто имена команд не отображаются. –

+0

, потому что $ rows - это коллекция объектов DOMNodes. Вы можете распечатать текстовое содержимое строк на print ($ rows-> item ($ i) -> textContent); – lePunk

Смежные вопросы