php - 通过 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";
}
解决方案
推荐阅读
- java - 如何从房间数据库中读取所有值并显示到recyclerview?
- xml - 我需要一个 XSL 文件的输出(输出是 XML 文件),它以一个 XML 文件作为输入,在一个文件夹结构中
- javascript - 如何在 2 个数组差异之间获取对象中的属性
- amazon-web-services - 通过 GitHub 发布 Webhook 触发 AWS CodePipeline
- java - MongoDB 在负载下执行缓慢
- javascript - 为什么我总是在 nodejs 本机密码中得到错误的 des-ecb 结果?
- python - 如何从 Python 脚本导入机器人关键字文件并从该文件执行关键字并生成报告
- python - 验证前馈网络的有效性
- angular - 错误类型错误:this.homeboxsp.map 不是 patchForm 中的函数
- google-bigquery - 使用 bigquery 将数据插入分区表不会插入数据