如何通过PHP从特定HTML表中提取数据
我想知道如何从HTML文档的特定表中获取信息?现在,我正在从整个页面中提取所有数据,但我只需要id为如何通过PHP从特定HTML表中提取数据,php,html,dom,Php,Html,Dom,我想知道如何从HTML文档的特定表中获取信息?现在,我正在从整个页面中提取所有数据,但我只需要id为team\u batting的表中的数据。这将如何实现?这是我的密码: $dom = new DOMDocument(); $html = file_get_contents('https://www.baseball-reference.com/register/team.cgi?id=41270199'); @$dom->loadHTML($html); $table = $dom-&
team\u batting
的表中的数据。这将如何实现?这是我的密码:
$dom = new DOMDocument();
$html = file_get_contents('https://www.baseball-reference.com/register/team.cgi?id=41270199');
@$dom->loadHTML($html);
$table = $dom->getElementByID('team_batting');
$stats = $dom->getElementsByTagName("td");
for ($i = 0; $i < $stats->length; $i++) {
$attr = $stats->item($i)->getAttribute('data-stat');
if ($attr != 'player') {
continue;
}
$nodes[] = $stats->item($i)->textContent;
foreach($nodes as $node) {
echo $node;
echo '<br>';
}
}
$dom=newdomdocument();
$html=文件\u获取\u内容('https://www.baseball-reference.com/register/team.cgi?id=41270199');
@$dom->loadHTML($html);
$table=$dom->getElementByID('team_batting');
$stats=$dom->getElementsByTagName(“td”);
对于($i=0;$i<$stats->length;$i++){
$attr=$stats->item($i)->getAttribute('data-stat');
如果($attr!=“玩家”){
继续;
}
$nodes[]=$stats->item($i)->textContent;
foreach($node作为$node){
echo$节点;
回声“
”;
}
}
有了这个,我可以从
data stat=“player”
属性中提取所有球员的名字,但我只想在team\u batting
表中应用它。如何执行此操作?警告:使用错误抑制YOLO运算符(@
)会掩盖代码中的问题,并使调试问题变得更加复杂。这是最后手段,只能在特殊情况下使用。您应该为用户显示一条错误消息,记录一个问题,启动某种重试,或者同时执行所有这些操作代码>?也就是说,在该行中用$table
替换$dom
。我尝试了这个,它仍然从页面中提取所有球员的名字。通过一些测试,我发现两个版本实际上对我都很好,只列出了击球手。问题是您的输出循环在主循环中,所以它输出一个名称,然后两个名称,然后三个名称,等等。?(也就是说,当它找到三个玩家时,它输出了6个名字,第一个玩家被列出了三次。)是的,这就是问题所在,谢谢!