首页 > 解决方案 > 通过 CURL 请求获取页面时 DOM 未加载

问题描述

我一直在 PHP 中使用 CURL 请求来获取页面。它做得很好,但是当我获取一个包含这么多数据的页面时,加载 DOM 需要很长时间,CURL 请求的响应显示空 DOM。

有没有办法在页面加载成功后添加一些暂停或延迟来获取页面内容,即 DOM?

我尝试在 curl 执行 URL 5 分钟后添加“睡眠”,但没有用。

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$link);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        $curl_scraped_page = curl_exec($curl);
        if ($link == "https://dev.finduslocal.com/sitemap-state/ca.xml") {
            var_dump('Sleeping for 5 mins');
            sleep(300);
        };



        $HTTP_CODE = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        curl_close($curl);

        $dom = HtmlDomParser::str_get_html( $curl_scraped_page );

        if ($dom) {
          // my code
        } else {
           echo "DOM not found";
        }

标签: phpcurldom

解决方案


推荐阅读