简单HTMLDOM:Cannot抓取蚂蚁分页

Simple HTML DOM:Cannot fetch ant pagination

我正在尝试抓取网站以根据提供的关键字估算产品数量。要完成此任务而不是滚动浏览每个页面并手动计算产品数量,我要做的就是找到 ant-pagination 中显示的最后一页为 ant-pagination-item 并将其乘以产品总数一页以获得估计的产品数量。 我使用 simple_html_dom.php 编写了它,这就是我的代码的样子。

<?php
    require_once('simple_html_dom.php');
    $query = $_POST['q'];
    $url = "https://www.daraz.pk/catalog/?q=".$query;
    $html = file_get_html($url);

    if (!empty($html)) {
        $pages = $html->find("li.ant-pagination-item",-1);  
        $pages = html_entity_decode($pages->plaintext);
    }

    else {
        echo "Something went wrong";
    }

    echo "<div>";
    if (isset($pages)){
        echo "FOUND $pages";
    }
    echo "</div>";

我正在通过表单传递查询并将其附加到 $url 问题是当代码运行时它只显示 FOUND 这意味着 $pages 已设置。我试图检查这是否仅发生在分页或其他任何情况下,发现只有分页显示出这种行为,我无法找到解决它的单一方法。 如果有人可以帮助我理解我所犯的错误,那将是一个很大的帮助。您可以尝试访问 This Link 并且会有 102 页,但是此脚本不会 return FOUND 102 但只打印 FOUND

由于页面的动态行为,这是不可能的。因为爬虫的库在 php 中,它只在页面加载后立即提取页面内容,忽略所有动态内容,依赖于 JavaScript 事件。此问题的解决方案是将 SimpleHTMLDOMCasperJSPhantomJs 一起使用。 Casper 将允许在页面完成加载时使用延迟,从而更容易抓取动态加载的组件。