簡體   English   中英

沒有屬性的簡單Dom HTML標記

[英]Simple Dom HTML tags without attributes

您好,我正在嘗試從ESPN.com提取花名冊信息。 每個團隊的花名冊都保存在表格中。 我正在嘗試找到一種將每個標簽適當地保存到變量中的方法,但是每個標簽都沒有諸如“ jersey_number” /“ player_name”之類的ID,因此對此進行搜索給了我一些問題。 這是我到目前為止的內容-如果您能給我一個或兩個指針,將不勝感激。

    <?php
    require_once("../tools/simple_html_dom.php");
    require_once("../tools/Utilities.php");
    $url = "http://espn.go.com/nfl/team/roster/_/name/den/denver-broncos";

    $espnHTML = file_get_html("http://espn.go.com/nfl/team/roster/_/name/den/denver-broncos");



    foreach($espnHTML->find("table.tablehead",0)->find('tr[class^=odd]') as $rosterRow)
    {
        foreach($rosterRow->find("td") as $playerInfo)
        {
            echo $playerInfo->plaintext."<br>";   
        }

    }
   ?>

如何將這些td標簽分配給沒有“ id”的適當變量? 隨附的示例屏幕截圖可以幫助您了解我在說什么。 在此處輸入圖片說明

如果每個玩家的列順序都相同,則使用$rosterrow->find("td")應該返回一個索引數組,您可以使用$playerrow[0..n]進行訪問。 然后,通過分析與之對應的內容,您可以創建如下函數:

$players = array();
foreach($espnHTML->find("table.tablehead",0)->find('tr[class^=odd]') as $rosterRow)
{
    $playerRow = $rosterRow->find("td");
    $name = $playerRow[0];
    $jersey = $playerRow[1];
    // more can be added, of course.

    $players[$name] = array();
    $players[$name]["jersey"] = $jersey;
    // and others
}

對於表

John Appleseed | 12
---------------|----
Richard Brooks | 34

這將導致像

{ "John Appleseed" => { "jersey" => 12 }, "Richard Brooks" => { "jersey" => 34}}

請告訴我是否有幫助。

如果您願意采用一種可能更具可擴展性/可靠性的方法,那么您可能還想看看Kimono Labs 您可以使用它基於ESPN的數據創建結構化的API。 我認為您將能夠定義表的哪一部分包含名稱,分數等,並且可以輕松地為所需信息調用API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM