Php 没有属性的简单Dom HTML标记
你好,我正试图从ESPN.com上调回花名册信息。每个队的花名册都保存在一张表中。我试图找到一种方法将每个标签保存到一个变量中,但是每个标签都没有诸如“jersey_number”/“player_name”这样的ID,因此通过该方法进行搜索会给我带来一些问题。这是我到目前为止所拥有的——如果你能给我一个或两个指针,我将不胜感激Php 没有属性的简单Dom HTML标记,php,simple-html-dom,Php,Simple Html Dom,你好,我正试图从ESPN.com上调回花名册信息。每个队的花名册都保存在一张表中。我试图找到一种方法将每个标签保存到一个变量中,但是每个标签都没有诸如“jersey_number”/“player_name”这样的ID,因此通过该方法进行搜索会给我带来一些问题。这是我到目前为止所拥有的——如果你能给我一个或两个指针,我将不胜感激 <?php require_once("../tools/simple_html_dom.php"); require_once("../
<?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>";
}
}
?>
如何在没有“ID”的情况下将这些td标记分配到适当的变量中?附件是一个示例截图,可以帮助您理解我所说的内容 如果每个玩家的列顺序相同,使用
$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}}
请让我知道这是否有帮助。如果您愿意接受一种更具可扩展性/健壮性的不同方法,那么您可能还想看看。您可以使用它根据ESPN的数据创建结构化API。我认为您可以定义表的哪个部分包含名称、分数等,并且可以很容易地调用API以获取所需的信息 谢谢你这帮了我大忙谢谢你我会再调查的。我不知道这是可行的。这是一个虚假的建议。有很多应用程序承诺在不编写代码的情况下就可以抓取网站,但它们都有缺陷,不属于这样的应用程序。