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元素,并将其内部文本添加到数组中.之后,您可以随心所欲地对他们进行任何操作.

上一篇:95分位延迟要求5ms左右,如何做性能优化


下一篇:NOIP提高组模拟赛14