![](/img/trans.png)
[英]How to get and print attributes in meta tags using simple_html_dom
[英]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.