2015-08-25 8 views
0

Я пытаюсь разобрать статистику команды из этого website.Проблема с HTML Простой dom PHP скребок

Я хочу, чтобы разобрать "Основные статистики" блок, вот скриншот

Wins/draws/losses - 363/8/168 
Total kills - 50715 
Total deaths - 45101 
Rounds played - 14083 
K/D Ratio - 1.12 
Best player(Average rating) - olofmeister (1.15) 

Screenshot (у меня нет репы, чтобы добавить изображение, извините)

Я использую Simple HTML DOM PHP парсер, и я начал с основной вещи. Я извлек все ссылки, для целей тестирования, и это сработало для меня.

include 'simple_html_dom.php'; 

$url = 'http://www.hltv.org/?pageid=179&teamid=4991&gameid=2'; 
$html = file_get_html($url); 

foreach($html->find('a') as $element) { 
    echo $element->href . '<br>'; 
} 

$html->clear(); 
unset($html); 

После этого я начал извлекать основной Div блок, в котором хранится все:

include 'simple_html_dom.php'; 

$url = 'http://www.hltv.org/?pageid=179&teamid=4991&gameid=2'; 
$html = file_get_html($url); 

foreach ($html->find('div[style="float:right;width:300px;"]') as $div) { 
    echo $div . '<br/>'; 
}; 

Он работал отлично, и результаты были удовлетворительными - prntscr.com/88p8l1

Тогда , Я начал становиться все глубже и застрял.

include 'simple_html_dom.php'; 

$url = 'http://www.hltv.org/?pageid=179&teamid=4991&gameid=2'; 
$html = file_get_html($url); 

foreach ($html->find('div[style="float:right;width:300px;"]') as $div) { 
    $item['stat-title'] = $html->find('div[style="height:22px;background-color:white"]')->plaintext; 
    $item['stat-data'] = $html->find('div[style="height:22px;background-color:white"]')->plaintext; 
    $items[] = $item; 
}; 

print_r($items); 

На данный момент я действительно борется, как отображать результаты, которые мне нужны.

Я тестировал отдельно одну часть кода - и он работал нормально.

foreach ($html->find('div[style="height:22px;background-color:#E6E5E5"]') as $div) { 
    echo $div . '<br/>'; 
}; 

В результате я хочу достичь:

<div class="stat"> 
    <span class="stat-title">Wins/draws/losses</span> 
    <span class="stat-data">363/8/168</span> 
</div> 

Мне нужен свежий взгляд на моей текущей проблеме. Заранее спасибо.

ответ

1
$item; 

foreach ($html->find('div.covGroupBoxContent div.covSmallHeadline') as $div) { 
     if(isset($div->style) && $div->style=="font-weight:normal;width:180px;float:left;color:black;text-align:right;") { 
      //select black text which is the stat data 
      $item["stat-data"] = $div->plaintext; 
      //the previous sibling of the data is the title (based on the website) 
      $item["stat-title"] = $div->prev_sibling()->plaintext; 
      $items[] = item; 
     } 
    }; 

Надеюсь, это поможет. Пожалуйста, правильно определите вопрос.

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