![](/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.