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

Postman中正常运行的GET请求在PHP CURL中无法返回JSON数据

解决PHP CURL请求Instagram接口返回图标而非JSON的问题

Instagram的反爬机制会对请求做验证,你的CURL请求因缺少必要请求头或会话信息,被判定为非浏览器请求,因此返回了验证相关的图标资源而非预期JSON数据。以下是修复方案:

1. 更新并补充请求头

  • 替换老旧的User-Agent为现代浏览器标识,避免被直接识别为爬虫
  • 添加Accept、Accept-Language、Referer等浏览器常用请求头,模拟真实访问逻辑

2. 启用Cookie会话支持

Postman会自动保存会话Cookie,而CURL默认不保留会话状态,需开启Cookie存储维持访问上下文

修改后的完整代码

$curl = curl_init();

// 定义现代浏览器标准请求头
$headers = [
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language: en-US,en;q=0.5",
    "Referer: https://www.instagram.com/",
    "DNT: 1",
    "Connection: keep-alive",
    "Upgrade-Insecure-Requests: 1"
];

curl_setopt_array($curl, array(
    CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
    CURLOPT_URL => "https://www.instagram.com/p/CVhuRABqnAI/?__a=1&__d=dis",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "gzip, deflate, br",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_COOKIEJAR => "instagram_cookies.txt", // 保存Cookie到本地文件
    CURLOPT_COOKIEFILE => "instagram_cookies.txt" // 从本地文件读取Cookie
));

$response = curl_exec($curl);
$error = curl_error($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); // 获取响应状态码
curl_close($curl);

if($error) {
    echo "cURL Error:" . $error;
} else {
    // 先检查响应状态码,再尝试解析JSON
    if($httpCode == 200) {
        $jsonData = json_decode($response, true);
        if($jsonData) {
            print_r($jsonData);
        } else {
            echo "返回内容不是有效JSON,可能仍处于验证环节";
        }
    } else {
        echo "请求失败,状态码:" . $httpCode;
    }
}

额外注意事项

  • 首次运行会生成instagram_cookies.txt文件,需确保PHP对当前目录有写入权限
  • 如果仍返回验证页面,可手动访问目标URL一次,将浏览器Cookie复制到代码中,或使用无头浏览器(如Puppeteer)先绕过验证再获取有效会话
  • Instagram的非官方接口参数(如__a=1&__d=dis)可能随时变更,需注意接口有效性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:58:38