所以我使用的是PHP Simple HTML DOM Parser,我正试图从这个网页上获取 Top Goalscorers 的表格列表:http://www.transfermarkt.co.uk/en/chinese-super-league/startseite/wettbewerb_CSL.html(这是前5名......)
我正在尝试解析最佳目标得分手表,其ID为“spieler”。这样做,我想得到每个表行并自己列出它们。问题是......在名称/俱乐部下面...有一个新的<table>
可以让图片,名称和俱乐部名称更容易在网页上显示。
我想弄清楚DOM,所以我可以看到我需要选择什么,并获得正确的球员名称,俱乐部名称和目标。感谢。
这是我到目前为止所拥有的:
<textarea id='txt_out'>
<?php
echo "Player | Team | Goals\n:--|:--|:--:\n";
$url = "http://www.transfermarkt.co.uk/en/chinese-super-league/startseite/wettbewerb_CSL.html";
$html = file_get_html($url);
foreach($html->find('#spieler') as $row) {
if ($i > 0) {
$player = $row->find('table tr',3)->plaintext;
echo $player . "|TEST TEAM|0";
}
$i++;
}
?>
</textarea>
并且此echo
返回空白。
<textarea id="txt_out">Player | Team | Goals
:--|:--|:--:
</textarea>
答案 0 :(得分:2)
你去了(你必须稍微使用属性来获得你想要的输出): 在这个解决方案中,我只需要取出所有的tds并在我检查它们不包含内部表格后得到它们的明文。
$output = '<table border="1">
<tr>
<td>#</td>
<td>Player</td>
<td>Team</td>
<td>goals-1</td>
<td>goals-2</td>
<td>goals-3</td>
<td>points</td>
</tr>
';
$url = "http://www.transfermarkt.co.uk/en/chinese-super-league/startseite/wettbewerb_CSL.html";
$html = file_get_html($url);
$tbl = $html->find('#spieler',0);
$trs = $tbl->find('tr[class=dunkel],tr[class=hell]');
foreach($trs as $tr){
$output .= '<tr>';
$tds = $tr->find('td');
foreach($tds as $td){
$inner_table = $td->find('table',0);
if(!$inner_table){
$text = trim($td->plaintext);
if($text != ''){
$output .= '<td>' . $td->plaintext . '</td>';
}
}
}
$output .= '</tr>';
}
$output .= '</table>';
echo($output);
答案 1 :(得分:0)
使用DOMNodelist-&gt; item()(item()期望索引作为参数,它从零开始,因此1将返回第二个表)
$table = $dom->getElementsByTagName('table')->item(1);