【问题标题】:Simple Dom HTML tags without attributes没有属性的简单 Dom HTML 标签
【发布时间】:2014-12-23 15:44:00
【问题描述】:

您好,我正在尝试从 ESPN.com 拉回花名册信息。每个团队的花名册都保存在一个表格中。我正在尝试找到一种方法将每个标签保存到适当的变量中,但是每个标签都没有诸如“jersey_number”/“player_name”之类的ID,所以通过这个搜索给了我一些问题。到目前为止,这是我所拥有的 - 如果您能给我一个或 2 个指针,将不胜感激。

    <?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 标签分配给没有“ids”的适当变量?附件是一个示例屏幕截图,可以帮助您理解我在说什么。

【问题讨论】:

    标签: php simple-html-dom


    【解决方案1】:

    如果每个玩家的列顺序相同,则使用您的$rosterrow-&gt;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}}
    

    如果这有帮助,请告诉我。

    【讨论】:

    • 谢谢你帮助我
    【解决方案2】:

    如果您对可能更具可扩展性/更强大的不同方法持开放态度,那么您可能还想看看Kimono Labs。您可以使用它来创建基于 ESPN 数据的结构化 API。我认为您将能够定义表格的哪一部分包含名称、分数等,并且可以轻松地调用 API 以获取所需的信息。

    【讨论】:

    • 谢谢,我会再调查一下。我没有意识到这是可用的。
    • 这是一个虚假的建议。有很多应用程序承诺无需编写代码即可抓取网站,但它们都有缺陷,它们不属于 SO。
    猜你喜欢
    • 2012-05-17
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多