【问题标题】:Parse HTML Table - PHP [closed]解析 HTML 表 - PHP [关闭]
【发布时间】:2014-01-10 13:28:41
【问题描述】:

我有一个 HTML 表,我想用 PHP 解析它以存储到 MySQL 数据库中。 HTML 如下所示:

<tr><td>DATE</td><td>LOCATION</td><td><a href="URL">NAME</a></td></tr>

我想创建一个以数组形式返回的 PHP 函数,这些字段以大写字母形式返回。有谁知道任何可以做到这一点的 php 库,或者我应该使用不同的语言,因为这可能很复杂。我不知道如何对页面上的许多表格执行此操作,但我正在尝试解析RobotEvents 上的 VEX 事件。我要解析的表从第 465 行开始。

【问题讨论】:

  • 我正在下载 HTML 文件。
  • 你看过这个,它可能会有所帮助。 stackoverflow.com/questions/8816194/…
  • @Smith:查看我的更新答案以查找特定表。
  • @Smith。注意到您将接受的答案从我的答案切换到另一个答案。有什么原因吗?您是否发现我建议的库有问题。只是想知道出了什么问题,以防我将来不得不向其他人推荐它。
  • 您的代码不像其他库建议的那样工作。

标签: php html html-parsing


【解决方案1】:

看看PHP HTML DOM Parser 库。

要使用,你可以做类似的事情(不是我的例子):

require('simple_html_dom.php');

$table = array();

$html = file_get_html('http://flow935.com/playlist/flowhis.HTM');
foreach($html->find('tr') as $row) {
    $time = $row->find('td',0)->plaintext;
    $artist = $row->find('td',1)->plaintext;
    $title = $row->find('td',2)->plaintext;

    $table[$artist][$title] = true;
}

echo '<pre>';
print_r($table);
echo '</pre>';

有一些关于图书馆的教程、SO 问题和有趣的读物。它似乎很受欢迎。

使用上述库在 HTML 中查找特定表格的更新

在众多表格中查找特定表格:

1.按类别:

在您抓取的 HTML 的第 465 行,表格以 catalog-listing 类开头,因此:

foreach ($html->find('table[@class="catalog-listing"]')->find('tr') as $row) {
   // extract TD data
}

2。按实例(在 HTML 中查找第二个表格)

foreach ($html->find('table', 2)->find('tr') as $row) {
   // extract TD data
}

【讨论】:

    【解决方案2】:

    当您准备超越 PHP 时,Nokogiri (Ruby) 和 Beautiful Soup (Python) 是非常成熟的库,可以很好地解析 HTML。

    这并不意味着没有合适的 PHP 库。

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 2016-03-23
      • 2010-09-19
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2012-08-12
      相关资源
      最近更新 更多