Веб-соскоб PHP - PullRequest
       35

Веб-соскоб PHP

0 голосов
/ 29 февраля 2020

Я пытаюсь очистить этот сайт: 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>

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Если это не совсем то, что вы хотите, я считаю, что это должно вас достаточно близко ...

$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>";
0 голосов
/ 01 марта 2020

Ваш XPath ничего не возвращает (отсутствует "/"). Попробуйте с:

$rows = $xp->query('//table[@class='table table-striped table-bordered']//tr');
...