加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – file_get_contents()给我403禁止

发布时间:2020-12-13 16:28:52 所属栏目:PHP教程 来源:网络整理
导读:我有一个合作伙伴,为我创造了一些内容来刮. 我可以用我的浏览器访问该页面,但是当尝试用户file_get_contents时,我得到一个403被禁止. 我试过使用stream_context_create,但这不是帮助 – 这可能是因为我不知道应该在那里. 1)有没有办法刮刮数据? 2)如果没有,
我有一个合作伙伴,为我创造了一些内容来刮.
我可以用我的浏览器访问该页面,但是当尝试用户file_get_contents时,我得到一个403被禁止.

我试过使用stream_context_create,但这不是帮助 – 这可能是因为我不知道应该在那里.

1)有没有办法刮刮数据?
2)如果没有,如果合作伙伴不允许配置服务器让我访问,那我该怎么办?

我试过使用的代码:

$opts = array(
  'http'=>array(
    'user_agent' => 'My company name','method'=>"GET",'header'=> implode("rn",array(
      'Content-type: text/plain;'
    ))
  )
);

$context = stream_context_create($opts);

//Get header content
$_header = file_get_contents($partner_url,false,$context);
这在您的脚本中不是问题,它的一个功能在于您合作Web服务器的安全性.

很难说出什么阻挡你,很可能是某种阻止刮擦的东西.如果您的合作伙伴可以访问其Web服务器设置,可能有助于确定.

您可以做的是通过设置用户代理头来“伪造Web浏览器”,以模拟标准Web浏览器.

我会推荐cURL这样做,很容易找到好的文档来做到这一点.

// create curl resource
    $ch = curl_init();

    // set url
    curl_setopt($ch,CURLOPT_URL,"example.com");

    //return the transfer as a string
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // $output contains the output string
    $output = curl_exec($ch);

    // close curl resource to free up system resources
    curl_close($ch);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读