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

PHP实现Instagram个人主页抓取脚本服务器端跳转登录页问题

问题原因

你部署到服务器的脚本被Instagram重定向到登录页,是因为Instagram反爬机制识别到了非法请求:

  • 你的服务器IP属于机房IP,本身就被Instagram标记为高风险爬虫来源,而你本地IP是民用宽带IP,之前未被标记,所以本地能正常请求
  • 你原有代码的curl请求没有携带任何合法请求头、登录态Cookie,反爬直接判定为爬虫,强制重定向到登录页
  • 目前Instagram的__a=1公开接口早就要求登录态才能返回数据,你本地之前运行时大概率浏览器登录过Instagram,本地请求上下文有有效Cookie,所以能正常返回
修复步骤
  1. 先在浏览器手动登录Instagram账号,登录成功后按F12打开开发者工具,在「网络」面板任意找一个Instagram的请求,复制请求头中的sessionid值,该值有效期一般为1~2周,过期后需要重新获取
  2. 替换原有代码中的curl请求部分,新增必要的请求头和登录态配置,修改后代码如下:
<?php 
if(isset($_POST['username'])){
    $username = $_POST['username'];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://www.instagram.com/$username/?__a=1");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT,10);
    // 禁止自动跟随重定向到登录页
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    // 配置请求头,替换成你自己的UA和sessionid
    $headers = [
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
        'Accept: */*',
        'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8',
        'Cookie: sessionid=替换为你自己的sessionid值;',
        'X-IG-App-ID: 936619743392459'
    ];
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $result = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    // 先判断请求状态
    if($httpCode !== 200) {
        $insta_profile_picture = '';
    } else {
        $json = json_decode($result);
        $insta_profile_picture = $json->graphql->user->profile_pic_url_hd ?? '';
    }
}
?>
  1. 额外注意事项:
  • 不要高频发起请求,否则你的账号、服务器IP都会被Instagram限流封禁
  • 如果服务器IP已经被限流,可以更换民用代理IP发起请求
  • 如果需要长期稳定使用,建议申请Instagram官方开发者权限,调用官方公开接口,避免频繁适配反爬规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:06:03