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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...