我正在使用PHP Simple HTML DOM解析器来爬取网上商店的某些数据(还运行XAMPP 1.7.2和PHP5.3.0),并且遇到<tbody>
标记的问题。该表的结构必不可少(细节实际上并不那么重要):
<table>
<thead>
<!--text here-->
</thead>
<tbody>
<!--text here-->
</tbody>
</table>
现在,我尝试通过使用代码进入
<tbody>
部分:$element = $html->find('tbody',0)->innertext;
它不会引发任何错误,当我尝试回显它时,它只会打印出任何内容。我已经在其他元素
<thead>
,<table>
甚至是<span class="price">
之类的代码上测试了代码,它们都工作正常(当然,删除“,0”会使代码失败)。他们都给出了正确的部分。外文同上。但这一切都在<tbody>
上失败。现在,我浏览了解析器,但不确定是否可以解决。我注意到
<thead>
甚至都没有提到,但是效果很好。耸耸肩我想我可以尝试进行 child 导航,但这似乎也有问题。我刚刚尝试运行:
$el = $html->find('table',0);
$el2 = $el->children(2);
echo $el2->outertext;
也没有骰子尝试将
children
替换为first_child
,将2替换为1,但仍然没有骰子。有趣的是,如果我尝试使用->find
而不是children
,则效果很好。我非常有信心可以找到一种解决方案,但是这种行为似乎很奇怪,可以在此处发布。我好奇的心为获得的所有帮助感到高兴。
最佳答案
在simple_html_dom.php文件中注释或删除行#396
// if ($m[1]==='tbody') continue;
关于php - PHP简单HTML DOM解析器中的<tbody>故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2340952/