php - 在 HTML 表格中抓取特定的 <td>

标签 php html html-table simple-html-dom scrape

我正在尝试使用 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 )是: 俱乐部名称、出场、获胜、失败、进球、失球、净胜球和积分。

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

Picture

最佳答案

您是否尝试查看 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>类别为 club-row 的元素(添加 . 表示类);此外,您只需要嵌套在 <table> 中的行与类 leagueTable .这就是第一个 find 所做的。表格后面的空格表示您想要它的后代。

接下来,你想要<td>具有您提到的各种类别的元素。您可以用逗号分隔它们以表示“和”。 (给我 td.col-club 和 td.col-p 以及...)

foreach循环只是遍历那些已解析的 DOM 元素并将它们的内部文本添加到数组中。之后您可以随心所欲地使用它们。

关于php - 在 HTML 表格中抓取特定的 <td>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33737174/

相关文章:

javascript - 根据用户输入的数字重新排列文本输入字段

html - 如何让这个网站表格包含边框?

php - 如何在不生成任何 td 等的 HTML 表格中进行搜索?

html - 表行,当向一个单元格添加填充时,整行会被下推

javascript - 如何将 CSV 文件的链接添加到使用 D3 生成的 SVG 元素?

javascript - 如何使用 JavaScript 写入 <div> 元素?

javascript - Mithril ajax 发送空输入

PHP DateInterval 不返回该月的最后一天

php - 为什么 base64_encode() 在结果中添加斜杠 "/"?

php - 无法在第 21 行 fatal error 上打开流 wp-settings.php