You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP/CURL/simple-html-dom无法获取解析网页:特定URL请求失败

解决curl请求ontario.ca返回"ERROR: The request could not be satisfied"的问题

这个错误是因为ontario.ca的反爬机制识别出你的请求是由curl工具发起的(默认User-Agent特征太明显),直接拦截了这类非浏览器请求,而Google对基础爬虫请求的限制相对宽松,所以能正常返回内容。

解决方法很简单,给curl请求添加符合浏览器特征的请求头,核心是设置正确的User-Agent:

  • 启用CURLOPT_USERAGENT配置,替换成真实浏览器的User-Agent字符串
  • 可选:补充Accept、Accept-Language等常见请求头,让请求更贴近浏览器行为

修改后的代码示例:

require_once ('simple_html_dom.php');
$url="https://www.ontario.ca/page/2024-ontario-immigrant-nominee-program-updates";
$base = $url;
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $base);
curl_setopt($curl, CURLOPT_REFERER, $base);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
// 设置Chrome浏览器的User-Agent
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36');
// 补充常见请求头
curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
]);

$str = curl_exec($curl);
// 新增curl错误排查
if(curl_errno($curl)){
    echo 'Curl error: ' . curl_error($curl);
}
curl_close($curl);
$html = new simple_html_dom();
$html->load($str);
var_dump($html);

注意:User-Agent可以根据当前主流浏览器版本调整,避免使用过于老旧的标识;如果后续仍被拦截,可以尝试添加Cookie头(先通过浏览器访问获取有效Cookie)或设置请求间隔,模拟人类访问节奏。

内容的提问来源于stack exchange,提问作者sofname

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:52:11