我正在尝试从此website解析团队统计信息。
我想解析“Key stats”块,这里是截图
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>
我需要对我当前的问题有一个全新的看法。提前谢谢。
答案 0 :(得分: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;
}
};
希望这会有所帮助。请正确定义问题。