【问题标题】:Parse HTML Table how cell and rows with PHP如何使用 PHP 解析 HTML 表格的单元格和行
【发布时间】:2019-12-18 11:43:32
【问题描述】:
<?php

    include ("simpel_html_dom.php");
    $dom = new \DOMDocument();
    $dom->loadHTML('http://www.arbworld.net/en/moneyway');

    $xpath = new \DomXPath($dom);

    // query the first column with class "value" of the table with class "attributes"
    $elements = $xpath->query('(/table[@class="grid"]//tr[@class="belowHeader"])');

    // iterate through all found td elements
    foreach ($elements as $element) {
        echo $element->nodeValue;
    }
?>

我想抓取 HTML 表格,但是当我运行代码时,结果将是一个空页面。 我该如何解决?

【问题讨论】:

  • 除非我弄错了 simpel_html_dom.php 拼写错误 - 我认为它应该是 simple_html_dom.php ~ 但是如果你使用 DOMDocumentDOMXPath,为什么还要包含它?

标签: php html web-scraping


【解决方案1】:

HTML 格式错误(根据 libxml ),因此您需要在加载源数据时考虑这一点,顺便说一下,您可以使用 loadHTMLFile 加载 url 或使用 loadHTML 加载字符串HTML。

$url='http://www.arbworld.net/en/moneyway';
libxml_use_internal_errors( true );
$dom=new DOMDocument;
$dom->validateOnParse=false;
$dom->recover=true;
$dom->strictErrorChecking=false;
$dom->loadHTMLFile( $url );
libxml_clear_errors();


$xp=new DOMXPath( $dom );
$col=$xp->query('//table[@class="grid"]/tr[@class="belowHeader"]/td');

if( $col->length > 0 ){
    foreach( $col as $node )echo $node->textContent;
}

【讨论】:

  • 我试过这个,但结果总是一个空页面。你能更好地给我解释一下吗?我正在努力更好地理解解析部分,我会重点关注它
  • 以上对我来说可以很好地进行测试。遗憾的是,我无法在 http://sandbox.onlinephpfunctions.com/ 上创建现场演示来展示 - 但响应从 Romanian Liga I22.Dec 18:00:00 FCSBUniversitat2.063.33.999.9 %€ 2070.1 %€ 00 %€ 0€ 207 22.Dec 18:00:00 Italian Serie A22.Dec 11:30:00 AtalantaAC Milan1.8844.499.7 %€ 21 5580.1 %€ 170.2 %€ 46€ 21 622 22.Dec 11:30:00 English League 221.Dec 15:00:00 开始并继续
  • 完美运行!如果我要在桌子上转换它,我会使用 HTML 吗?
  • 我不明白你的意思
【解决方案2】:

我希望在 IMG 中看到它,而不是这样:

罗马尼亚联赛 I22.Dec 18:00:00 FCSBUniversitat2.063.33.999.9 %€ 2070.1 %€ 00 %€ 0€ 207 22.Dec 18:00:00 意大利甲级联赛22.Dec 11:30:00 AtalantaAC Milan1. 8844.499.7 %€ 21 5580.1 %€ 170.2 %€ 46€ 21 622 22.Dec 11:30:00 英格兰联赛 221.Dec 15:00:00

我会在列和行中看到它

明白吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2018-05-30
    • 2016-09-20
    • 2011-06-02
    • 1970-01-01
    • 2013-10-27
    • 2015-10-14
    相关资源
    最近更新 更多