首页 > 解决方案 > 网页抓取 PHP

问题描述

我正在尝试抓取这个网站:www.odds.scanner.com,但我的代码在输出中看不到任何内容。我该如何解决这个问题?

<?php
$url='http://www.odds-scanner.com/';
    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);
$rows = $xp->query('//table[@class="table table-striped table-bordered"]/tr');
?>

<table>
  <tbody>
  <?php foreach ($rows as $row): ?>
    <tr>
    <?php foreach ($row->childNodes as $col): ?>
      <?php foreach ($col->childNodes as $colPart): ?>
        <?php if ($colText = trim($colPart->textContent)): ?>
        <td><?= $colText ?></td>
        <?php endif ?>
      <?php endforeach ?>
    <?php endforeach ?>
    </tr>
  <?php endforeach ?>
  </tbody>
</table>

标签: phpxpathweb-scrapingdomxpath

解决方案


如果这不是你想要的,我相信它应该让你足够接近......

$rows = $xp->query("//table[@class='table table-striped table-bordered']//tr");
echo "<table><tbody>";
if (!is_null($rows)) {
  echo "<tr>";
  foreach ($rows as $row) {            
    $col = $row->childNodes;    
    foreach ($col as $colPart) {        
        $colText = trim($colPart->textContent);
        if ($colText)
        {
        echo "<td>{$colText}</td>";         
        }      
    }
  echo "</tr>";
  }
}
echo "</tbody></table>";

推荐阅读