微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-特定于HTML表格的抓取

我正在尝试使用PHP刮取一个表,但事实是我设法刮了它,但是我在网页的表上得到了所有东西.我不确定如何指定要抓取的TD和/或TR.

这是PHP代码

<?PHP
include("simple_html_dom.PHP");
$html=file_get_html("http://www.premierleague.com/en-gb/matchday/league-table.html");
$html=new simple_html_dom($html);

foreach($html->find('table tr') as $row) {
$cell = $row->find('td', 0);
echo $row;
}
?>

我想要得到的(如果您查看the website)是:
 俱乐部名称,出场,获胜,输球,进球数,进球数,进球差和积分.

我得到的是表格中的所有内容,包括折叠的团队信息.看起来像这样(不确定图片是否是发布图片的最佳方式,但是我不确定如何以其他方式显示图片,我突出显示了我实际想要抓取的部分):

解决方法:

您是否尝试查看Simple HTML DOM Parser的高级用法

我是根据上面链接中的手册编写的;它可能会为您提供正确的方向:

require "simple_html_dom.PHP";

$html=file_get_html("http://www.premierleague.com/en-gb/matchday/league-table.html");
$html=new simple_html_dom($html);

$rows = array();
foreach($html->find('table.leagueTable tr.club-row') as $tr){
    $row = array();
    foreach($tr->find('td.col-club,td.col-p,td.col-w,td.col-l,td.col-gf,td.col-ga,td.col-gd,td.col-pts') as $td){
        $row[] = $td->innertext;
    }
    $rows[] = $row;
}
var_dump($rows);

本质上,您需要所有< tr>具有一类俱乐部行的元素(添加.表示类);此外,您只需要嵌套在< table>内的行.与class LeagueTable一起使用.那就是第一个发现正在做的事情.表格后的空格表示您需要它的后代.

接下来,您要< td>具有您提到的各种类的元素.您可以使用逗号将其分开,以表示“和”. (给我td.col-club和td.col-p AND …)

foreach循环仅遍历那些已解析的DOM元素,并将其内部文本添加到数组中.之后,您可以随心所欲地对他们进行任何操作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐