使用PHP Simple HTML Dom Parser检索部分id,并使用结果解析另一个URL



为了学习一些html、css和php,我决定创建一个简单的页面来显示足球比分。我使用PHP Simple HTML DOM Parser从这个BBC网页中检索足球比分和联赛表,这很简单,但我现在想做的是检索进球者。不幸的是,我无法解析这些信息,因为在点击fixture并展开表之前,页面并不包含这些信息。

我注意到每个表行都有以下ID:

<tr id="match-row-EFBO803510" class="report">
<tr id="match-row-EFBO803454" class="report">
<tr id="match-row-EFBO803452" class="report">

经过一番摆弄,我发现以EFBO开头的ID末尾的字符串就是fixture ID。这个ID可以添加到url的末尾,它会把我带到一个页面,上面有我正在寻找的信息,比如:

http://www.bbc.co.uk/sport/football/live/partial/EFBO803510

因此,我希望做的是为这些表行解析网站,检索fixture ID,并将每个ID添加到bbc.co.uk/sport/bullet/live/partial/的末尾,以生成一个新的url进行解析。

这可能吗?很抱歉,我没有任何示例代码,我尝试的所有操作都会出现php错误。这是英国广播公司网站上表格的一个例子:

<tbody>
  <tr id="match-row-EFBO804038" class="report">
    <td class="match-score">
      <button class="hidden-text">Show stats panel</button>
      <span class="team-home">Brighton</span>
      <span class="score">5 - 0</span>
      <span class="team-away">Fulham</span>
      <span class="elapsed-time">Result</span>
    </td>
    <td class="match-link">
      <a href="/web/20160415225751/http://www.bbc.co.uk/sport/football/35994191">Report</a>
    </td>
  </tr>
  <tr id="match-panel-EFBO804038" class="panel-showing live">
    <td class="details-table-container" colspan="2"></td>
  </tr>
  <tr class="row-spacer">
    <td colspan="2">&nbsp;</td>
  </tr>
</tbody>

例如,第一个链接:http://www.bbc.co.uk/sport/football/live-scores

这似乎是您正在进行DOM解析的站点,并且有<tr id="match-row-EFBO851386" class="fixture">,而EFBO851386只重复了两次,一次在那里,一次就在下面。

因此,我的建议是,您应该使用CLASS"fixture"和replace("match-row-",$val)来解析第一个TR,以检索id。

可以将其附加到您提到的url:"http://www.bbc.co.uk/sport/football/live/partial/".$id

如何将该url的返回添加到生成的页面完全取决于如何添加初始信息。

我通常会使用ajax并在您的初始html响应下面附加,这是一个很好的微调器。

但您可以在返回初始html响应之前检索它,这实际上取决于您实际解析的方式和使用返回内容的方式。

最新更新